2011-07-27 20 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

相關問題