私は、値を追加し、button.Clickをクリックして値を減少させるようなタスクを実行したいアプリケーションを作成したときListView Items(TextView)は毎回読み込み中ですが、うまくいきますが、私が直面している問題リストビューをスクロールすると値は0になります。スクロール
しかし、私が増加ボタンまたは減少ボタンをクリックすると、私に真の値が与えられます。
:つまり、2を追加した場合。クリックして。
と私はページをスクロールしたとき、それは0になり、私はaddButtonをクリックしたとき、それは意志私に3
を与えるか、私はページをスクロールしたとき、それが0になり、私はマイナスボタン、それをクリックしたときTextView displayIntegerが破棄されてその値が忘れられたときにスクロールすると、1
が返されます。
ここでは、完全なコード: - ListView
(またはRecyclerView
)で
listViewadapter.java
@Override
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
TextView mname , pmethod2, pamount3, premark4;
final ImageView increase,decrease;
final Button add;
inflater = (LayoutInflater) cntx
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LayoutInflater inflater = LayoutInflater.from(cntx);
convertView = inflater.inflate(R.layout.raw_order, parent,
false);
decrease = (ImageView) convertView.findViewById(R.id.decrease);
increase= (ImageView) convertView.findViewById(R.id.increase);
add= (Button) convertView.findViewById(R.id.add);
mname = (TextView) convertView.findViewById(R.id.mname);
mname.setText(" " + o_aproduct.get(position));
final TextView displayInteger = (TextView) convertView.findViewById(R.id.integer_number);
//add.setText(" " +count);
increase.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int count = sia.get(position);
count= count + 1;
sia.put(position, count);
displayInteger.setText("" + count);
add.setText(" " +count);
if (count > 0) { decrease.setEnabled(true); }
}
});
decrease.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int count = sia.get(position);
count= count- 1;
sia.put(position, count);
displayInteger.setText("" + count);
add.setText(" " +count);
if (count > 0)
{decrease.setEnabled(true);}
else if (count == 0){
decrease.setEnabled(false);
}
else { decrease.setEnabled(false);}
}
});
return convertView;
}
使用recylerviewの代わりに、リストビュー –
あなたは、このような問題を得ている理由..あなたは、再利用可能な概念を使用していないすべての – Andie
まずthatsの。だから最初に再利用可能なし、モデルを作成し、古いカウント値を格納します。だから親切にこのビデオを見て、それはそれがあなたを助けることを望むアダプタのリストビューを説明されています。 ** [カスタムアダプタを使用したListView](https://www.youtube.com/watch?v=UMSdD05NVYQ)** –