0

各項目をクリックすると開始される、対応するアクティビティのリストビューがあります。それは正常に動作します。しかし、「Pedro」を検索してクリックすると、正しいアクティビティが開始されません。初のアクティビティ「Joao.class」をオープン

これは私のコードです。詳細な説明が必要です。私はJavaをよく知らないので、誰かが私に説明したり、コードを変更する必要がある場所を教えてくれませんか?

どうもありがとう!!!

public class Main extends Activity {

   private ListView lv1;
private EditText ed;
private String lv_arr[]=  {"Android","Cupcake","Donut","Eclairs","AndroidPeople","Froyo",};
private ArrayList<String> arr_sort= new ArrayList<String>();
int textlength=0;
@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);
lv1.setOnItemClickListener(new OnItemClickListener(){

public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {



       if ("João".equals(lv_arr[position])) {
           Intent myIntent = new Intent(Main.this, Joao.class);
           startActivity(myIntent);
       }

       if ("Maria".equals(lv_arr[position])) {
           Intent myIntent = new Intent(Main.this, Maria.class);
           startActivity(myIntent);
       }

       if ("Pedro".equals(lv_arr[position])) {
           Intent myIntent = new Intent(Main.this, Pedro.class);
           startActivity(myIntent);
       }


}

        });





// 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>(Main.this,android.R.layout.simple_list_item_1  , arr_sort));

}
});
}

} 
4

1 に答える 1

0

私の推測では、 android.R.layout.simple_list_item_1 のデータは、並べ替え後の配列のデータと一致しません。配列を調べる代わりに、arr_sort から値を取得する必要があります。すなわち:

if ("Pedro".equals(arr_sort.get(position))) {

于 2012-08-01T01:59:47.520 に答える