Android 单击listview中图像上的侦听器

Android 单击listview中图像上的侦听器,android,onclicklistener,Android,Onclicklistener,我正在开发一个android应用程序,其中包含带有imageview的listview和两个文本视图,如图片所附。因此,我在这里的查询是在单击图像时进行的,而不是在列表项上。我应该导航到另一个活动。我的代码如下 public class MainActivity extends Activity { String[] animals=new String[]{"Chinkara","Redpanda","Elephant","Squirel","Langur"}; int[] images

我正在开发一个android应用程序,其中包含带有imageview的listview和两个文本视图,如图片所附。因此,我在这里的查询是在单击图像时进行的,而不是在列表项上。我应该导航到另一个活动。我的代码如下

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

  }
}

公共类MainActivity扩展活动
{
字符串[]动物=新字符串[]{“Chinkara”、“Redpanda”、“大象”、“Squirel”、“叶猴”};
int[]images=new int[]{R.drawable.rsz_rajas_chinkara,R.drawable.rsz_rsz_锡金_redpanda,R.drawable.rsz_jharkhand_indianelephant,R.drawable.rsz_mh_indiangiantsquirel
,R.drawable.rsz_tripura_langur};
字符串[]国家=新字符串[]{“印度”、“印度”、“印度”、“印度”};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lst=(ListView)findViewById(R.id.ListView);
列表列表=新的ArrayList();

对于(int i=0;i使用自定义列表适配器&在imageview上的getView方法setonclicklistener中。请参阅,您可以在适配器中尝试此操作,而不是在活动中:

animalImage.setOnClickListener(new OnClickListener() {

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

希望这有帮助。

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

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


下面是为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
                        }
                    });
                }

            }
        });
lst.setOnScrollListener(新的OnScrollListener(){
CrollStateChanged上的公共无效(AbsListView视图,
int(滚动状态){
}
public void onScroll(AbsListView视图,int firstVisibleItem,
int visibleItemCount,int totalItemCount){
对于(int i=0;i
我建议使用自定义适配器


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

您应该在适配器中为onclicklistener编写代码…因为问题已经被回答了(n次)只是一个离题:您可以使用
this
而不是
getBaseContext()
创建适配器时。将适配器代码张贴在此处Hi Amsher,上面的级别1是什么?接受答案,其中一个对您有帮助。它将帮助其他人。
 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
                        }
                    });
                }

            }
        });