#android #listview
#Android #listview
Вопрос:
У меня 2 представления:
- Listview
- Подробная информация об элементе списка
Когда я сначала запускаю свое приложение, оно отображается ListView
, а затем, когда я выбираю элемент, ListView
он переходит в следующий вид, называемый details of элемент списка. Теперь, когда я возвращаюсь к ListView
элементам списка, они появляются несколько раз. Как я могу решить эту проблему?
Спасибо
Как показано ниже, я добавляю данные в ArrayAdapter.
MyArrayAdapter adapter = new MyArrayAdapter(SampleActivity.this, R.layout.citieslist, scity);
lv.setAdapter(adapter);
lv.setTextFilterEnabled(true);
MyArrayAdapter выглядит следующим образом…
private class MyArrayAdapter extends BaseAdapter {
String[] items;
public MyArrayAdapter(Context context, int
textViewResourceId, String[] items) {
this.items = items;
}
@Override
public int getCount() {
return items.length;
}
@Override
public Object getItem(int position) {
return
position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.citieslist, null);
}
TextView tv = (TextView) v.findViewById(R.id.tvCity);
tv.setText(items[position]);
return v;
}
}
Комментарии:
1. Почему вы задали так много вопросов и не приняли ни одного ответа?
2. теперь вы можете сказать ответ на мой запрос
3. Вероятно, это ваш адаптер. Пожалуйста, опубликуйте код
4. посмотрите код и дайте ответ боссу
Ответ №1:
Я бы попробовал 3 вещи:
- Удалите строку setTextFilterEnabled. Если только вы не делаете что-то специально с фильтрацией, о чем я не знаю.
- Вы передаете контекст, но не сохраняете его. Сохраните его в переменной класса и используйте его для # 3.
-
Измените строку inflate вашего метода getView () адаптера на:
if (v == null) { v = LayoutInflater.from(context).inflate(R.layout.citieslist, parent, false); }
Ответ №2:
Есть две возможности,
один:
когда вы возвращаетесь с подробного просмотра на страницу listview,
если вы используете «startActivity (намерение)», замените на «finish ()».
два: инициализируйте listview «scity» в «onCreateView ()»