我有自定义ListView和自定义适配器扩展ArrayAdapter。 ArrayAdapter使用两个视图来膨胀xml:
<?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="?android:attr/listPreferredItemHeight">
<TextView android:id="@+id/filePickerTextView1"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:minHeight="?android:attr/listPreferredItemHeight"
android:focusable="true" android:text="item" />
<ImageView android:layout_width="wrap_content"
android:focusable="true" android:src="@drawable/icon"
android:layout_height="fill_parent" android:id="@+id/filePickerImageView1"
android:layout_alignParentRight="true" android:layout_alignRight="@android:id/text1"></ImageView>
</RelativeLayout>
在ListActivity方法onListItemClick我正在获取RelativeLayout视图。我需要的是,知道点击了哪个确切的视图(TextView或ImageView)。我可以通过设置监听器来获取适配器,但我需要在ListActivity中使用它。原因是,我需要根据点击的视图提升setResult。
答案 0 :(得分:1)
在自定义适配器类中,您可以使用下面的代码然后单击Textview,相应地您将获得toast消息并单击imageview然后相应地获取toast消息。
holder.filePickerImageView1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// toast message;
}
});
holder.filePickerTextView1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// toast message;
}
});
答案 1 :(得分:1)
5个月后,我回到了我的项目,我找到了解决问题的方法。 最简单的方法是将上下文传递给自定义适配器。