2011-07-27 3 views
0

各項目をクリックすると対応するアクティビティがリストビューに表示されます。しかし、setTextFilterEnabled(true)を実装すると、結果がクリックされたときに正しいアクティビティが開始されません。私は 'ポジション'を使わないことについて何かを読んだが、それはどういう意味ですか?これを修正するにはどうすればよいですか?Androidのリストビューの検索結果が正しい結果に戻っていない

public class Contactpage extends ListActivity { 

private static final int KEYBOARD = 0; 

public void onCreate(Bundle savedInstanceState) {  

    String[] people = getResources().getStringArray(R.array.people_array); 
    setListAdapter(new ArrayAdapter<String>(this, R.layout.listtest, people)); 

    ListView lv = getListView(); 
    lv.setTextFilterEnabled(true); 


    final String[] email = getResources().getStringArray(R.array.details_array); 
    final String[] number = getResources().getStringArray(R.array.number_array); 

    //Intent after selection is made 
    lv.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      String contenttt = email[position]; 
      String contentt = number[position]; 
      Intent showContent = new Intent(getApplicationContext(), 
        Viewer.class); 

      Bundle b = new Bundle(); 
      b.putString("name",contenttt); 
      showContent.putExtras(b); 

      Bundle a = new Bundle(); 
      a.putString("number",contentt); 
      showContent.putExtras(a); 
      startActivity(showContent); 
     }});} 


    @Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
      super.onCreateOptionsMenu(menu); 
      menu.add(0, KEYBOARD, 0, R.string.menu_keyboard) 
      .setIcon(android.R.drawable.ic_menu_search); 
      return true; 
     } 
    @Override 
     public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
     case KEYBOARD: { 
    InputMethodManager imm = (InputMethodManager) 
    Contactpage.this.getSystemService(Context.INPUT_METHOD_SERVICE); 

if (imm != null){ 
    imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0); 
} 

     return true;} 

     default: { 
      return super.onOptionsItemSelected(item);} 
      } 
     } 

} 
+0

使用 '位置の内側に位置= - listview.getFirstVisibleItemを();あなたは' onitemclickedlistener()の残りの位置の使用を開始する前に '' –

+0

日食を与えています私のエラー、私はそれを私のsetOnItemClickListenerの直前に置くのですか?彼らはgetFirstVisiblePosition – bernlim

+0

を使用して、何かを開始する直前に 'setOnItemClickListener()'の中に入れておくことを提案しました。 –

答えて

0

解決方法は簡単ですが、インターネットを回した後に見つけられました。 だけ追加します。

String name = lv1.getItemAtPosition(position).toString(); 
    for (int index = 0; index < people.length; index++) 
    { 
     if (name.equals(people[index])) 
     { 
      position = index; 
      break; 
     } 
    } 

をonItemClickListener

関連する問題