首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListView onclick无法正常工作

ListView onclick无法正常工作
EN

Stack Overflow用户
提问于 2013-04-05 20:48:53
回答 3查看 64关注 0票数 0

您好,我在我的列表视图中使用列表视图,我有蔬菜和非蔬菜。所以当我点击蔬菜时,它应该移动到下一个活动并显示项目,当我点击非蔬菜时,它应该转到下一个活动。我已经为两个列表项编写了setonclickitemlistener(),但是当我按下蔬菜或非蔬菜时,它将转到非蔬菜活动only.Here是代码

代码语言:javascript
复制
public class MainActivity extends Activity {

String[] items={"veg","non-veg"};


protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

     ListView lv= (ListView)findViewById(R.id.listView1);

  ArrayAdapter<Object> adapter1 = new ArrayAdapter<Object (this,android.R.layout.simple_list_item_1,items);

  lv.setAdapter(adapter1);      

    lv.setOnItemClickListener(new OnItemClickListener() {


        public void onItemClick(AdapterView<?> arg0, View v, int arg2,
                long arg3) {

            {
            Toast.makeText(getBaseContext(),"YOU HAVE SELECTED VEG", 4000).show();
        Intent i=new Intent(MainActivity.this,veg.class);
        startActivity(i);
            }
        }
    });




  lv.setOnItemClickListener(new OnItemClickListener() {         

            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {

                Toast.makeText(getBaseContext(),"YOU HAVE SELECTED NON-VEG", 4000).show();
            Intent i=new Intent(MainActivity.this,Nonveg.class);
            startActivity(i);


            }
        });

}}

请告诉我如何识别蔬菜和非蔬菜的id,以及如何编写setonclicklistener()方法。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-05 20:54:45

这段代码完全正常工作:

代码语言:javascript
复制
public class MainActivity extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final ListView lv = (ListView)findViewById(R.id.listView1);
        lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

        final String[] values = new String[] { "Veg", "Non-veg" };

                // Define a new Adapter
                // First parameter - Context
                // Second parameter - Layout for the row
                // Third parameter - ID of the TextView to which the data is written
                // Forth - the Array of data

                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                        android.R.layout.simple_list_item_1, android.R.id.text1, values);


                // Assign adapter to ListView
                lv.setAdapter(adapter); 

                lv.setOnItemClickListener(new OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> arg0, View arg1,
                            int arg2, long arg3) {
                        if (arg2 == 0) {
                        Intent intent = new Intent(MainActivity.this, veg.class);
                        startActivity(intent);
                        }
                        if (arg2 ==1) {
                            Intent intent = new Intent(MainActivity.this, Nonveg.class);
                            startActivity(intent);
                        }
                    }
                });
}

arg2是列表中项目的位置

票数 0
EN

Stack Overflow用户

发布于 2013-04-05 20:50:57

您只能有一个OnItemClickListener...这将不得不检查视图以确定要去哪里。

票数 0
EN

Stack Overflow用户

发布于 2013-04-05 20:57:41

单击列表视图项目,获取列表视图中相应位置的项目。检查它是素食还是非素食

代码语言:javascript
复制
public class MainActivity extends Activity {
String[] items={"veg","non-veg"};
ListView lv;
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

 setContentView(R.layout.activity_main);

 lv= (ListView)findViewById(R.id.listView1);
 setContentView(lv);
 ArrayAdapter<Object> adapter1 = new ArrayAdapter<Object> (this,android.R.layout.simple_list_item_1,items);

 lv.setAdapter(adapter1);      

 lv.setOnItemClickListener(new OnItemClickListener() {


    public void onItemClick(AdapterView<?> arg0, View v, int arg2,
            long arg3) {

        {
             String itemselected =(String) (lv.getItemAtPosition(arg2));
             if(itemselected.equals("veg")){

             Toast.makeText(getBaseContext(),"YOU HAVE SELECTED VEG", 4000).show();
             Intent i=new Intent(MainActivity.this,veg.class);
             startActivity(i); 
          }
            else if(itemselected .equals("non-veg"))
            {
                Toast.makeText(getBaseContext(),"YOU HAVE SELECTED NON VEG",4000).show();
                     Intent i=new Intent(MainActivity.this,nonveg.class);
                      startActivity(i); 
            }

        }
    }


});

}
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15834424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档