안녕하십니까. 나는 초보자입니다. 내 목표는 ListView에서 특정 항목을 클릭하고 싶을 때 프로그래밍 한 새로운 활동을 열어야한다는 것입니다. 예를 들어 : "John"을 클릭하면 X라는 메리 클래스가 열리므로 Y, Charlie, Z 클래스 등의 클래스를 열어야합니다. 나는 코드 끝에 "onListItemClick"코드를 사용해 보았지만 작동하지 않습니다. ListView 앱에서 John의 이름을 클릭해도 아무런 변화가 없습니다. 제 코드가 잘못되어 어디에 코드를 넣어야하는지, 올바른 코드가 무엇인지 알려주세요.ListView : 새 활동을 열어야합니다.
P.S : 당신의 활동 ListActivity를 확장하면 onListItemClick 방법은 오버라이드 (override)하는
public class Searchsort extends Activity {
private ListView lv1;
private EditText ed;
private String lv_arr[]={"John","Mary","Carl","Rose","Charlie","Allan", "João"};
private ArrayList<String> arr_sort= new ArrayList<String>();
int textlength=0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
lv1 = (ListView)findViewById(R.id.ListView01);
ed = (EditText)findViewById(R.id.EditText01);
// By using setAdpater method in listview we an add string array in list.
lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , lv_arr));
ed.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
textlength=ed.getText().length();
arr_sort.clear();
for(int i=0;i<lv_arr.length;i++) {
if(textlength<=lv_arr[i].length()) {
if(ed.getText().toString().equalsIgnoreCase((String) lv_arr[i].subSequence(0, textlength))) {
arr_sort.add(lv_arr[i]);
}
}
}
lv1.setAdapter(new ArrayAdapter<String> (Searchsort.this,android.R.layout.simple_list_item_1 , arr_sort));
}
});
}
public void onListItemClick(ListView parent, View v, int position, long id) {
if ("John".equals(lv_arr[position])) {
Intent myIntent = new Intent(Searchsort.this, X.class);
startActivity(myIntent);
if ("Mary".equals(lv_arr[position])) {
Intent myIntent = new Intent(Searchsort.this, Y.class);
startActivity(myIntent);
if ("Charlie".equals(lv_arr[position])) {
Intent myIntent = new Intent(Searchsort.this, W.class);
startActivity(myIntent);
}
}
}