列表视图中的图像上的Onclicklistener

时间:2014-08-06 07:41:28

标签: android onclicklistener

正在开发一个Android应用程序,其中包含带有imageview的listview和两个textview,如图所示。所以我的查询是单击图像,而不是列表项。我应该导航到另一个活动。我的代码如下

enter image description here

public class MainActivity extends Activity 
{

String[] animals=new String[]{"Chinkara","Redpanda","Elephant","Squirel","Langur"};

int[] images=new int[]{R.drawable.rsz_rajas_chinkara,R.drawable.rsz_rsz_sikkim_redpanda,R.drawable.rsz_jharkhand_indianelephant,R.drawable.rsz_mh_indiangiantsquirel
        ,R.drawable.rsz_tripura_langur};

String[] country=new String[]{"India","India","India","India","India"};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ListView lst=(ListView) findViewById(R.id.listview);
    List<HashMap<String,String>> alist=new ArrayList<HashMap<String,String>>();

    for(int i=0; i<5;i++)
    {
        HashMap<String,String> hm=new HashMap<String, String>();
        hm.put("txt","Animal :" +animals[i]);
        hm.put("country","Country :" +country[i]);
        hm.put("image", Integer.toString(images[i]));
        alist.add(hm);

    }


    String[] from={"image","txt","country"};

    int[] to={R.id.image,R.id.txt,R.id.country};

    SimpleAdapter adapter=new SimpleAdapter(getBaseContext(), alist, R.layout.listview_layout, from, to);
    lst.setAdapter(adapter);

  }
}

5 个答案:

答案 0 :(得分:1)

在适配器类getView()方法中尝试此代码

myImageView.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        Intent i=new Intent(context,yourActivity.class);
        startActivity(i); 
    }
});

答案 1 :(得分:0)

使用自定义列表适配器&amp;在imageview上的getView方法setonclicklistener中。参考cusom list view

答案 2 :(得分:0)

您可以在适配器中尝试此操作,而不是活动:

animalImage.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        //your logic 
    }
});

希望这有帮助。

答案 3 :(得分:0)

您需要实现自己的适配器并在getView()方法中为imageview设置onclick侦听器。

答案 4 :(得分:0)

以下是为listview中的每个项目设置点击操作的另一种方法。实施onscrolllistener

 lst.setOnScrollListener(new OnScrollListener() {

            public void onScrollStateChanged(AbsListView view,
                    int scrollState) {

            }

            public void onScroll(AbsListView view, int firstVisibleItem,
                    int visibleItemCount, int totalItemCount) {
                for (int i = 0; i < lst.getChildCount(); i++) {
                    LinearLayout layout = (LinearLayout) lst
                            .getChildAt(i);
                    // Here "0" is the position of your imageview or
                    // imagebutton
                    ImageView animalImage = (ImageView) layout
                            .getChildAt(0);
                    animalImage.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View v) {
                            // your logic
                        }
                    });
                }

            }
        });

我建议使用自定义适配器

但在你的情况下,你可以这样做