无法从带有搜索选项的列表视图正确启动 activity

Cannot start an activity properly from a Listview with Search option

我创建了一个应用程序,该应用程序应该显示带有搜索框和项目的列表视图,用户可以单击这些列表视图并开始新的 activity,或者搜索特定的并执行相同的操作。

现在我可以搜索一个项目并启动它应该启动的 activity,但是当我不搜索而单击时,它无法正常启动。例如,单击前 10 个项目只会启动 1 个相同的 activity 而不是 10 个不同的。

我的代码是这样的-

public class ItemMenu extends Activity {

private ListView lv;

ArrayAdapter<String> adapter;

EditText inputSearch;


ArrayList<HashMap<String, String>> itemList;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.item_menu);

    String items[] = {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5",  "Item 6", "Item 7", "Item 8", "Item 9", "Item 10", "Item 11"  etc...
    };

    lv = (ListView) findViewById(R.id.ItemListView);
    inputSearch = (EditText) findViewById(R.id.search_item);

    adapter = new ArrayAdapter<String>(this, R.layout.item_item, R.id.item_item_title, items);
    lv.setAdapter(adapter);

    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            TextView textview = (TextView)findViewById(R.id.item_item_title);
            String sText = textview.getText().toString();
            Intent intent = null;
            if(sText.equals("Item 1"))
               intent = new Intent(getBaseContext(),
                        B1.class);
            else if(sText.equals("Item 2"))
                intent = new Intent(getBaseContext(),
                        B2.class);
            else if(sText.equals("Item 3"))
                intent = new Intent(getBaseContext(),
                        B3.class);
            else if(sText.equals("Item 4"))
                intent = new Intent(getBaseContext(),
                        B4.class);
            else if(sText.equals("Item 5"))
                intent = new Intent(getBaseContext(),
                        B5.class);
            else if(sText.equals("Item 6"))
                intent = new Intent(getBaseContext(),
                        B6.class);
            else if(sText.equals("Item 7"))
                intent = new Intent(getBaseContext(),
                        B7.class);
            else if(sText.equals("Item 8"))
                intent = new Intent(getBaseContext(),
                        B8.class);
            else if(sText.equals("Item 9"))
                intent = new Intent(getBaseContext(),
                        B9.class);
            else if(sText.equals("Item 10"))
                intent = new Intent(getBaseContext(),
                        B10.class);
            else if(sText.equals("Item 11"))
                intent = new Intent(getBaseContext(),
                        B11.class);

            etc...


            if(intent != null)
                startActivity(intent);
        }
    });

    inputSearch.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
            ItemMenu.this.adapter.getFilter().filter(cs);
        }

        @Override
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                                      int arg3) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable arg0) {
            // TODO Auto-generated method stub
        }
    });





}

}

当我点击一个项目时 LogCat 显示:

    W/IInputConnectionWrapper﹕ getSelectedText on inactive InputConnection
    W/IInputConnectionWrapper﹕ setComposingText on inactive InputConnection
    D/SensorManager﹕ unregisterListener:: Trklfufi 9   budiwrd5mrfo5WirfulblrwuFmfulTrklfufi$KfukwiFmfulTrklfufiRvht@,*--:af(
    D/Sensors﹕ Remain listener = Sending .. normal delay 200ms
    I/Sensors﹕ sendDelay --- 200000000
    D/SensorManager﹕ JNI - sendDelay
    I/SensorManager﹕ Set normal delay = true

我认为问题出在这一行,因为它在您的布局中找到视图 item_item_title

TextView textview = (TextView)findViewById(R.id.item_item_title);

但是您正在尝试单击查找项目的视图。所以你应该使用:

TextView textview = (TextView)view.findViewById(R.id.item_item_title);