Как получить значение textview из списка?
У меня есть длинный список из 15 элементов (с пользовательскими представлениями) и я хочу получить значение textview для элемента списка, который я хочу.
2 ответа
Ваш обратный вызов 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
конкретная позиция. Теперь вы можете просто разыграть его, используя предыдущий способ.
Надеюсь, что это поможет вам:)
Этот код может быть добавлен в ваш 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
}
});