0

我在向我的 ListView 添加搜索功能时遇到了一些问题。我想这样做,以便用户可以搜索 ListView 可点击的所需项目。我已经创建了一个没有可点击实现的搜索 ListView。我尝试使用 EditText 和 TextChangedListener 添加搜索。这对于普通的 ListView 工作正常,但是当我单击列表视图的一项时没有任何反应。我知道我必须为列表视图中的每一行添加意图(例如法拉利),但是我如何实现意图?有任何想法吗

public class Main extends Activity {

private ListView lv;


ArrayAdapter<String> adapter;


EditText inputSearch;


ArrayList<HashMap<String, String>> modelist;

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


    String modeller[] = {"Ferrari","Renault","Porche",};

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

    adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.model_ismi, modeller);
    lv.setAdapter(adapter);

    inputSearch.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {

            Main.this.adapter.getFilter().filter(cs);
        }

        @Override
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                int arg3) {


        }

        @Override
        public void afterTextChanged(Editable arg0) {

        }
    });
}
4

1 回答 1

1

试试这个 :

lv.setOnItemClickListener(new OnItemClickListener(){ 
            @Override
            public void onItemClick(AdapterView<?> parent, View view,int position, long _id){
                switch(position){
                    case 0: // "Ferrari"
                        Intent intent_ferrari=new Intent(Main .this,Ferrari.class);
                        startActivity(intent_ferrari);
                        break;
                    case 1: // "Renault"
                        break;
                    case 2: // "Porche"
                        break;
                    default:
                        break;
                }
            }
});
于 2013-01-25T18:17:05.627 回答