我有一个15项长列表(带有自定义视图),我想得到我想要的列表项的textview值。
答案 0 :(得分:1)
你的onItemClick回调会喜欢这个
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
在这里,您只需View view
使用布局投射此视图并获取TextView。这是一个例子:
if (view != null) {
TextView txtView = view.findViewById(R.id.mytextview);
String value=txtView.getText().toString();
}
修改强>
public View getViewByPosition(int pos, ListView listView) {
final int firstListItemPosition = listView.getFirstVisiblePosition();
final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;
if (pos < firstListItemPosition || pos > lastListItemPosition ) {
return listView.getAdapter().getView(pos, null, listView);
} else {
final int childIndex = pos - firstListItemPosition;
return listView.getChildAt(childIndex);
}
}
只需使用这种方式在按钮onClick()方法上调用此方法
getViewByPosition(2,YOUR_LIST_VIEW);
此方法会返回View
具体位置的ListView
对象。现在你可以使用以前的方式进行投射。
希望,这会对你有所帮助:)
答案 1 :(得分:0)
可以将此代码添加到ListView中,以便在长按时执行某项操作:
list.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View list,int pos, long id) {
// TODO Auto-generated method stub
CustomView view = (CustomView) list ;
//put in your customview some methods to get and set each item within it for example getTextViewText to get the text from the TextView item
}
});