如何使用可点击的自定义列表视图来访问其位置

时间:2013-03-14 06:41:36

标签: android listview clickable

如何使用可点击的每个项目制作自定义列表视图(我的意思是,我制作一个列表视图,其中包含一个图像按钮,两个textview,我想在用户点击项目时访问位置,然后它不显示可点击。)。< / p>

4 个答案:

答案 0 :(得分:1)

<强>代码:

@Override
public void onListItemClick(ListView l, View v, int position, long id) {

       // here position variable holding the ListView position which clicked by user 
}

答案 1 :(得分:0)

我认为这会对你有帮助..

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() 
 { 
      @Override 
      public void onItemClick(AdapterView arg0, View arg1,int position, long arg3) 
      { 

      } 
 });

答案 2 :(得分:0)

您可以使用已应用于 customListView getView的{​​{1}}方法实现此目的。

大致就像使用Adapter一样,您必须在特定视图元素上设置 onClickListener ,例如View v=customView.findViewById(id of your view i.e image etc.)

- 编辑 -

A similar question查看此链接问题和接受的答案。

答案 3 :(得分:0)

您可以在列表视图中对自定义布局进行充气,其中包含Button和2 TextView,如下所示:

<强> listview_row.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
          android:orientation="horizontal" >

<TextView
    android:id="@+id/textView2"
    android:layout_width="75dp"
    android:layout_height="75dp"
    android:scaleType="fitXY"
     />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="0dp"
    android:layout_marginTop="15dp"
    android:text="Medium Text"
    android:textSize="15dp" />

  <ImageButton
    android:id="@+id/imageview1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_launcher"
      />

   </LinearLayout>

在您的主要活动布局中添加listview,如下所示:

<强> main.xml中

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >
  <ListView
            android:id="@+id/listView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
 </ListView>
</LinearLayout>

在创建上述布局后,创建一个适配器类,在列表视图中添加自定义布局,并使用扩展BaseAdapter

 public class App_Adapter extends BaseAdapter implements OnClickListener{

在adpater类的getView方法中,您需要对布局进行充气。

 @Override
  public View getView(int position, View convertView, ViewGroup parent) {
         // TODO Auto-generated method stub
         View mView=convertView;
            if (convertView == null)  
              mView = inflater.inflate(R.layout.listview_row, null);

           TextView text1=(TextView)mView.findViewById(R.id.textView1));
           TextView text2=(TextView)mView.findViewById(R.id.textView2));
           ImageButton imagbtn=(ImageButton)mView.findViewById(R.id.imageview1);
         //set the image button click listener
      imagbtn..setOnClickListener(this);
   return mView;
   }

在您的活动之后,您可以访问listview并为其设置onItemclick监听器,以访问listview的列表项,如下所示:

  public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 
      ListView lv = (ListView)findViewById(R.id.listView1);
    lv.setAdapter(new App_Adapter());
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() 
     { 
       @Override 
       public void onItemClick(AdapterView arg0, View arg1,int position, long arg3) 
      { 
        } 
      });
     }