单击ListView ListItem中的ImageView并获取位置?

Rya*_*n R 6 android listview listitem android-listview

目前,当单击ListItem时,我抓住它的位置并将其传递给我的StopsScheduleActiviy.我想检测何时单击该ListItem的ImageView,以便我可以启动我的MapActivity并将其传递给位置.

基本上:单击ImageView启动MapsActivity,否则单击ListItem上的任何其他位置启动StopsScheduleActivity.在这两种情况下我都需要这个职位.我怎样才能做到这一点?

这是我当前的onItemClick监听器.

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

    Intent myIntent = new Intent(this, StopsScheduleActivity.class);
    myIntent.putExtra("stop", stops.get(position));

    startActivity(myIntent);

    Log.i("Winnipeg Bus", "Stop item #" + id + " clicked.");
}
Run Code Online (Sandbox Code Playgroud)

这是我的ListView,其中包含我想要点击的ImageView地图.谢谢!

在此输入图像描述

Ars*_*war 26

在您的自定义适配器getView()方法中,当您初始化时ImageView.添加位置作为图像视图的标记.因此,每当新的ImageView出现时,它将在其标签中保持其位置.然后,只需添加OnClickListener()getView().

OnClickListener(View view)包含用户点击的视图.因此,当用户单击列表中的任何图像视图时.然后它将OnClickListener(View view)作为点击视图传递给.我们知道我们ImageView包含了作为标签的位置.所以标签可以告诉我们这ImageView是为了什么?位置.:)

@Override
    public View getView(int position, View convertView, ViewGroup parent) {

        if(convertView == null){
            convertView = inflater.inflate(R.layout.list_row, parent, false);
        }

        ImageView imageView = (ImageView) convertView.findViewById(R.id.videoListImage);
        imageView.setTag(new Integer(position));
        imageView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {
                Toast.makeText(mContext, "ImageView clicked for the row = "+view.getTag().toString(), Toast.LENGTH_SHORT).show();
            }
        });

        return convertView;
    }
Run Code Online (Sandbox Code Playgroud)

您将获得点击的ImageView位置.


use*_*305 12

对于ImageView的Click你需要为listview制作一个自定义适配器.

在adpater的getView()方法中只需编写一个imageView's onClick(),然后从该imageview的onClick()开始新的活动.

对于自定义列表,请查看本教程Android系列:自定义ListView项目和适配器 ..