[英]onclicklistener for subitems of listview
我有一個listview
,lisview的每個項目都是一個linearlayout
。 每個線性布局包含3個文本視圖。
如何為這些onclicklistener
設置onclicklistener
?
我嘗試了這個:
TextView tv=(TextView)findById(R.id.textView1);
tv.setOnClickListener(...);
這拋出了一個nullpointerexception
。
我還嘗試了setonitemclickedlistener的listview,但這只允許我對線性布局進行操作,而不能對textview進行操作。
提前致謝。
如果靜態需要這樣做,並且您的視圖基於XML,這就是我所做的:
<TextView
...
android:clickable="true"
android:onClick="myHandler"
/>
每當觸摸/單擊文本視圖時,都會調用myHandler。 在列表視圖中使用此標記時,仍然需要在getView()中添加一個標記,並在myHandler()中使用該標記來確定按下了哪個行/字段。
希望這可以幫助。
為了獲得此要求,您必須使用自定義適配器類,以便可以非常輕松地獲得此要求。 使用自定義適配器是非常easy and simple
過程。
單擊此鏈接 ,其簡單的應用程序,然后可以使用TextView
代替Buttons
。
祝你今天愉快..
您應該創建諸如Use BaseAdpter之類的自定義adpter,然后在此處傳遞列表並根據位置將列表設置為Textview,在這里您可以設置onClick事件,還可以創建基本的Adpter,例如ex(1)
public class GridAdpter extends BaseAdapter
{
List<String> checkednamelist;
public GridAdpter(Context c, List<String> myitem) {
this.checkednamelist =myitem
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
//Here change with yur row xml file name and 3 textview control id name
View grid;
if (convertView == null) {
grid = layoutInflater.inflate(R.layout.row_grid, null);
} else {
grid = convertView;
}
TextView textView2 = (TextView) grid.findViewById(R.id.txtlable2);
textView.setText(checkednamelist.get(position);
textView2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// do here as per your require
}
});
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return myitem.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return myitem.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public List<String> mycheckeditem() {
return checkednamelist;
}
}
//最后用您的listview設置此適配器
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.