android 如何在ListView中使ImageView可单击

mo49yndu  于 2023-03-27  发布在  Android
关注(0)|答案(6)|浏览(139)

我已经创建了一个基本的ListView,并在其中添加了TextView和ImageView。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
>
        <TextView
        android:id="@+id/label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="30sp"
    />
        

    <ImageView
        android:id="@+id/icon"
        android:layout_width="50px"
        android:paddingLeft="2px"
        android:paddingRight="2px"
        android:paddingTop="2px"
        android:layout_height="wrap_content"
        android:layout_alignParentRight = "true"
        android:src="@drawable/call"
    />

</RelativeLayout>

我需要使ImageView可点击,这样如果有人点击它,就会发生一个动作,就像一个新的活动被打开。有人能帮助我如何做到这一点吗?
谢谢

djp7away

djp7away1#

你必须实现你自己的游标适配器,你必须覆盖getView方法,然后为你的镜像设置onclick监听器:

public class SMSimpleCursorAdapter extends SimpleCursorAdapter {

    Context context;
    Activity activity;
    public SMSimpleCursorAdapter(Context context, int layout, Cursor c,
            String[] from, int[] to) {
        super(context, layout, c, from, to);
        this.context = context;
        this.activity = (Activity) context;
    }
    
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = super.getView(position, convertView, parent);
        long id = getItemId(position);
        ImageView image = (ImageView)view.findViewById(R.id.icon);
        image.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // Perform action
            }
        });
    }
}
htrmnn0y

htrmnn0y2#

请改用ImageButton

<ImageButton
    android:id="@+id/icon"
    android:layout_width="50px"
    android:paddingLeft="2px"
    android:paddingRight="2px"
    android:paddingTop="2px"
    android:layout_height="wrap_content"
    android:layout_alignParentRight = "true"
    android:background="@drawable/call" />
eufgjt7s

eufgjt7s3#

要使ImageView可单击,可以设置属性

android:clickable="true"

在xml文件中。

ffvjumwh

ffvjumwh4#

Rishi
请尝试以下操作:

ImageView myImg = (ImageView) findViewById(R.id.icon);
myImg.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        //Launch Intent or whatever you want here
    }
});
2izufjch

2izufjch5#

这是可行的:

ImageView myImg = (ImageView) findViewById(R.id.icon);
myImg.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        Intent i = new Intent(YourCurrentActivity.this,YourNextActivity.class);
            startActivity(i);
    }
});
ix0qys7i

ix0qys7i6#

你可以在你的ImageView上试试这个,我觉得很有效。

android:focusable = "false"

相关问题