【发布时间】:2016-05-22 06:46:54
【问题描述】:
我正在使用BaseAdapter 来显示一些项目。
我不想更改位置为零的项目的文本。
所以我的BaseAdapter 的getView 方法看起来像
public View getView(int position, View view, ViewGroup parent) {
try {
if(view == null) {
view = LayoutInflater.from(context).inflate(R.layout.item_bill, parent, false);
}
Log.e("BillAdapter", "Position :: " + position);
if(position == 0) {
Log.e("BillAdapter", "Position zero. Not changing values....");
} else {
Bill bill = items.get(position);
Log.e("BillAdapter", position + " :: " + bill.toString());
TextView textDate = (TextView) view.findViewById(R.id.text_date);
textDate.setText(bill.getDate());
TextView textPaidAmount = (TextView) view.findViewById(R.id.text_paid_amount);
textPaidAmount.setText(String.format("%2.2f", bill.getPaidAmount()));
}
} catch (Exception ex) {
Log.e("BillAdpater", Log.getStackTraceString(ex));
}
return view;
}
但我的输出是
我在我的所有应用程序中都使用了相同的逻辑并且它有效。我不知道这有什么问题。
它反映了第一个位置的最后一个值。
我尝试重建项目,清理项目,但没有成功。
提前致谢。
【问题讨论】:
-
如果
position == 0你想做什么? -
我不想改变写在
TextViews 中的值从item_bill布局文件 -
你不能依赖那个逻辑。您需要为 0 位置设置默认值。
-
K,我会这样做并让你知道它是否有效..
-
非常感谢您的帮助..它工作并得到了这背后的逻辑..在接受的答案中解释
标签: android baseadapter listadapter