2011-06-27 55 views
2

我有自定义ListView自定义适配器扩展ArrayAdapter。 ArrayAdapter被充气XML与两个视图:自定义ListActivity和onListItemClick里面视图

<?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。

回答

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; 

     } 
    }); 
+0

正如我在质询时说,我需要它在ListActivity,而不是在适配器。有没有可能在ListActivity和适配器之间交换数据? – korro

+0

您可以在适配器的listactivity中设置数据 –

相关问题