【发布时间】:2015-02-25 06:40:09
【问题描述】:
适配器的Getview方法。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.list_items, parent, false);
tvName = (TextView) rowView.findViewById(R.id.tvName);
tvPrice = (TextView) rowView.findViewById(R.id.tvPrice);
id = Integer.parseInt(values.get(position));
tvName.setText(database.getItemName(id));
spQuantity = (Spinner) rowView.findViewById(R.id.spQuantity);
spQuantity.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long arg3) {
// TODO Auto-generated method stub
String selectedQuantity = parent.getItemAtPosition(position)
.toString();
int selectedPrice = database.getPrice(id, selectedQuantity);
Log.d("selectedPrice",""+selectedPrice); //showing correct value
tvPrice.setText("Rs. " + selectedPrice); //not working
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
quantityList = database.getQuantityList(id);
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(context,
R.layout.spinner_item_black, quantityList);
dataAdapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spQuantity.setAdapter(dataAdapter);
buttonAddtoCart = (LinearLayout) rowView
.findViewById(R.id.buttonAddtoCart);
buttonAddtoCart.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (database.checkDuplicateCart(id)) {
Toast.makeText(context, "Already added to cart",
Toast.LENGTH_SHORT).show();
} else {
database.addtoCart(id);
Toast.makeText(context, "Added to cart", Toast.LENGTH_SHORT)
.show();
}
}
});
return rowView;
}
日志显示从数据库中获取的正确值。其他一切工作正常。但是 TextView 并没有改变它的值。只有 listview 的 TextView 的最后一行是第一次改变它的值。 但是当我们等待一段时间(大约 30 秒)时,文本视图会发生变化。为什么这需要这么长时间?
【问题讨论】:
-
我认为您也应该在 onItemClick 之外设置价格文本。
-
也需要发布相关布局,至少对于 R.layout.list_items。
-
@justDroid 会在选择项目时起作用。
-
当你点击列表项时你想调用这个吗?
-
@justDroid 是的。当微调器上的选定项目发生变化时。我想改变文本视图
标签: android listview textview spinner onitemselectedlistener