Перейдите в папку, в которой вы сохранили Eclipse. Просмотрите папку конфигурации в журнале запуска. Это даст вам гораздо лучшую диагностику, чем «код выхода 13».
Ну, проблема в вашем методе getView(int position, View convertView, ViewGroup parent)
, потому что вы продолжаете добавлять представления к ранее переработанному представлению, которое предоставляет вам listview. Вместо того, чтобы динамически создавать текстовое представление, вы должны раздувать его при создании своего вида.
Например, чтобы исправить это:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = null;
if (convertView == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
//Make sure the textview exists in this xml
} else {
row = convertView;
}
InventoryItem myItem = data.get(position);
TextView label = (Textview) row.findViewById(R.id.YOU_TEXT_VIEW_ID);
label.setText(myItem.details);
return row;
}
Вид повторно используется адаптером. Поэтому, когда вы вызываете
linearMain.addView(label);
, каждый раз, когда он получает представление, он добавляет несколько просмотров в ваш элемент списка.
Вам действительно нужно каждый раз создавать новые TextView
и добавить его в свой элемент списка? Я бы это изменил, просто установив текст на один существующий TextView
.
convertView = row
илиconvertView.setTag(row)
. – Siddharth 27 June 2014 в 12:55