如果我在活动1的edittext中输入“Hello”,它会将“Hello”添加到活动2中的listview作为第一个条目(没有错误)。此外,如果我输入“Apple”作为我的第二个条目,我会将“Hello”的第一个条目更改为“Apple”并添加新的第二个条目“Apple”...导致两个条目变为“Apple”和“Apple” ......有什么想法吗?
ACT2 @覆盖 protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); 的setContentView(R.layout.activity_argue_list);
ListView txtlist = (ListView)findViewById(android.R.id.list);
Bundle bun = getIntent().getExtras();
Lrg = bun.getString("Jenny");
Med = bun.getString("Forest");
Med2 = bun.getString("Gump");
KoreyzAdapter add = new KoreyzAdapter();
txtlist.setAdapter(add);
list.add(0, Lrg);
add.notifyDataSetChanged();
setListAdapter(add);
}
class KoreyzAdapter extends ArrayAdapter<String>{
public KoreyzAdapter() {
super(ArgueListActivity.this, android.R.layout.simple_list_item_1, list);
}
class ViewHolder{
TextView who;
TextView sex;
TextView cat;
ImageView pic;
ViewHolder(View v){
who = (TextView) v.findViewById(R.id.inputLrgtxt);
sex = (TextView) v.findViewById(R.id.whoMedtxt);
cat = (TextView) v.findViewById(R.id.stupidMedtxt);
pic = (ImageView)v.findViewById(R.id.sexpic);
}
}
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = null;
if(row == null){
LayoutInflater inflator = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflator.inflate(R.layout.list_item, parent, false);
holder = new ViewHolder(row);
row.setTag(holder);
}else{
holder = (ViewHolder)row.getTag();
}
holder.who.setText(Lrg);
holder.sex.setText(Med);
holder.cat.setText(Med2);
holder.pic.setImageResource(R.drawable.maleandfemale);
return row;
}
答案 0 :(得分:0)
您必须清除适配器数据。在从适配器加载listView之前,请在活动的 onCreate()中清除列表。它只是附加旧数据。这就是它出现两次的原因。 我希望这会奏效。
使用onCreate():
list.clear()
答案 1 :(得分:0)
答案 2 :(得分:0)
使用ArrayAdapters始终传递构造函数中列表行项的布局。
示例:TodosAdapter(Context context, int layoutResourceId, List<Todo> todos);
int layoutResourceId是android.R.layout.simple_list_item_1