Ich weiß nicht, warum meine Ausgabe von Listview immer in der falschen Reihenfolge, nachdem ich die Daten in meiner Tätigkeit aktualisieren.ListView nicht folgen Reihenfolge nach notifyDataSetChanged
Dies ist, wie ich den Adapter in meiner Tätigkeit
inboxTradeAdapter=new InboxTradeAdapter(InboxTradeActivity.this, R.layout.activity_inbox_trade, tradeArrayList,loginUserId);
tradeList.setAdapter(inboxTradeAdapter);
I
inboxTradeAdapter.notifyDataSetChanged();
nach tradeArrayList aktualisiert
Dieser Aufruf initialisiert ist mein Adapter
public class InboxTradeAdapter extends ArrayAdapter<Trade> {
private List<Trade> tradeList;
private Context context;
private String loginUserId;
public InboxTradeAdapter(Context context, int resource, List<Trade> tradeList, String loginUserId) {
super(context, resource, tradeList);
this.context = context;
this.tradeList = tradeList;
this.loginUserId=loginUserId;
}
@Override
public boolean isEnabled(int position) {
return true;
}
@Override
public int getCount() {
return ((null != tradeList) ?
tradeList.size() : 0);
}
@Override
public Trade getItem(int position) {
return ((null != tradeList) ?
tradeList.get(position) : null);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
LayoutInflater layoutInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (null == view) {
view = layoutInflater.inflate(R.layout.grid_category, null);
}
final Trade trade = tradeList.get(position);
if (trade != null) {
final CardView tradeLayout = (CardView) view.findViewById(R.id.category_gridlayout);
final TextView tradeName = (TextView) view.findViewById(R.id.category_name);
final ImageView tradeImage = (ImageView) view.findViewById(R.id.category_icon);
tradeName.setText(trade.getNameOwn());
tradeName.setSelected(true);
tradeLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Toast.makeText(context, category.getId()+" "+category.getName(), Toast.LENGTH_LONG).show();
Intent intent = new Intent(context, InboxActivity.class);
intent.putExtra("loginUserId", loginUserId);
intent.putExtra("tradeId",String.valueOf(trade.getId()));
context.startActivity(intent);
}
});
}
return view;
}
}
Ich kann bestätigen, dass die Order "tradeArrayList" in meiner Aktivität korrekt ist, aber die Listview zeigt den Trade in zufälliger Reihenfolge an. Ich kann den Fehler nicht finden, bitte helfen Sie
Was ist nicht in Ordnung? Nur der Name oder beides, Name und Symbol? – W0rmH0le
@ W0rmH0le zeigt die Listenansicht in zufälliger Reihenfolge an. Zum Beispiel, erstmalige Anzeige 1,2,3. Dann laufe ich nochmal, es wird 2,3,1 und so weiter angezeigt – phoon