【发布时间】:2017-10-23 16:58:48
【问题描述】:
我不知道为什么在我更新我的活动中的数据后,我的 listview 输出总是以错误的顺序排列。
这就是我在我的活动中初始化适配器的方式
inboxTradeAdapter=new InboxTradeAdapter(InboxTradeActivity.this, R.layout.activity_inbox_trade, tradeArrayList,loginUserId);
tradeList.setAdapter(inboxTradeAdapter);
我打电话
inboxTradeAdapter.notifyDataSetChanged();
tradeArrayList 更新后
这是我的适配器
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;
}
}
我可以确认我的活动中的 tradeArrayList 顺序是正确的,但列表视图以随机顺序显示交易。我找不到错误,请帮助
【问题讨论】:
-
出了什么问题?只是名称还是两者,名称和图标?
-
@W0rmH0le 以随机顺序显示列表视图。例如,第一次显示 1,2,3。然后我再次运行,它会显示2,3,1等等
标签: android listview adapter android-arrayadapter android-adapter