ListView изменение текста при щелчке по элементу
У меня есть listview, который построен из textviews.
Если пользователь нажимает на список элементов, текст щелкнутого элемента будет изменен, как я могу это сделать?
Я знаю, как добавить новый элемент, но изменить его текст? Как я могу это сделать?
4 ответов:
Вы можете сделать это с помощью AdapterView.OnItemClickListener . Реализуйте метод
onItemClick(AdapterView<?> parent, View view, int position, long id).view, который вы получаете здесь, - этоTextViewщелкнутого элемента, поэтому его должно быть достаточно, чтобы сделать((TextView)view).setText("Hey, I've just been tapped on!");
Прежде всего, вам нужно добавить OnItemClickListener в ваш ListView:
mMyListView.setOnClickListener(new OnItemClickListener( public void onItemClick(AdapterView<?> parent, View view, int position, long id) { } ));В методе onItemClick из OnItemClickListener существует параметр view. Он содержит строку ListView, которая была нажата.
С помощью этого представления вы можете получить представление TextView и затем изменить текст:
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView tv = (TextView) view.findViewById(R.id.your_text_view_id); tv.setText(...); }Если ячейка ListView содержит только TextView, можно безопасно привести представление непосредственно в TextView:
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView tv = (TextView) view; tv.setText(...); }
mListView.setOnClickListener(new OnItemClickListener( public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView mTextView = (TextView) view; mTextView.setText("TextView was Clicked"); } ));
Ну это будет работать, если у вас есть простой адаптер:
mListView.setOnClickListener(new OnItemClickListener( public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView mTextView = (TextView) view; mTextView.setText("TextView was Clicked"); } ));Но если у вас есть пользовательский вид , вам нужно найти вид, чтобы изменить текст:
mListView.setOnClickListener(new OnItemClickListener( public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //TextView mTextView = (TextView) view; //mTextView.setText("TextView was Clicked"); ((TextView)(view.findViewById(R.id.description))).setText(""TextView was Clicked"); } ));
Comments