Поиск по списку Android не возвращает правильную соответствующую активность для результатов - PullRequest
0 голосов
/ 27 июля 2011

У меня есть список с соответствующими действиями, которые запускаются при нажатии на каждый элемент.Но когда я реализую setTextFilterEnabled (true), результаты при нажатии не запускают правильное действие.Я читал что-то о том, что я не использую «положение», но что это значит?Как мне исправить это?

    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);}
           }
       }

}

1 Ответ

0 голосов
/ 30 июля 2011

Решение простое, нашел его после того, как гоняться по интернету. Просто добавьте:

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

внутри onItemClickListener

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...