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