2016-12-06 22 views
0

私は、テキストフィールドとボタンを持つArrayadpterを持っています。ボタンを押すたびに、テキストフィールドに1が追加されます。問題は、画面からスクロールするときにエントリが失われることです。 CheckForUpdateListenerなどを使用する必要があることはわかっていますが、実装方法はわかりません。助けてくれてありがとう:あなたはスクロールダウンまたはアップするたびにあなたが...最後に更新された値を保持するためのArrayListまたは配列を使用する必要がありますArraylist:ボタンをクリックして項目にテキストを追加

public class startseitenAdapter extends ArrayAdapter<getraenkeObjekt> { 

Context context; 
int layoutResourceId; 
int anzahl; 
ArrayList<getraenkeObjekt> data = new ArrayList<getraenkeObjekt>(); 

public startseitenAdapter(Context context, int layoutResourceId, ArrayList<getraenkeObjekt> data) { 
    super(context, layoutResourceId, data); 
    this.layoutResourceId = layoutResourceId; 
    this.context = context; 
    this.data = data; 
} 

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    UserHolder holder = null; 
    if (convertView == null) { 
     LayoutInflater inflater = ((Activity) context).getLayoutInflater(); 
     convertView = inflater.inflate(layoutResourceId, parent, false); 
     if (position % 2 == 1) { 
      convertView.setBackgroundColor(Color.DKGRAY); 
     } else { 
      convertView.setBackgroundColor(Color.BLACK); 
     } 

     holder = new UserHolder(); 
     holder.getraenkename = (TextView) 

holder.getraenkename = (TextView) convertView.findViewById(R.id.textView1); 
    holder.plus = (Button) convertView.findViewById(R.id.button); 
    holder.anzahl = (TextView) convertView.findViewById(R.id.textView); 


     convertView.setTag(holder); 

    } else { 
     holder = (UserHolder) convertView.getTag(); 
    } 


    final UserHolder finalHolder = holder; 
    holder.plus.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      int summand = 1; 
      Log.d("Adapter", "plus " + summand + " Position " + position); 
      MySQLiteHelper m = new MySQLiteHelper(context); 
      final int globid = position; 
      int anzahl = m.wertAenderung(globid, summand); 
      finalHolder.anzahl.setText(anzahl + " "); 
      } 
    }); 




    getraenkeObjekt drink = data.get(position); 

    holder.getraenkename.setText(drink.getname()); 
    holder.anzahl.setText(drink.getanzahl()+" "); 


    return convertView; 
} 


static class UserHolder { 
    TextView getraenkename; 
    TextView anzahl; 
    Button plus; 
} 
+0

あなたのアクティビティを投稿してください。@ user3336320 – Joy

答えて

0

、新しい値を使用して、あなたのビューのオブジェクトのオーバーライドは、古い値とはしませんどこにでも保存できます。あなたはそれらを配列リストに保存する必要があります。

4番目の行のボタンオブジェクトをクリックしているとします。あなたの第四行のTextViewが...

holder.textview.setText(ArrayList.get(position))

としてこれはあなたが必要なものでしょう...そうArrayList.set(4,"updatedvalue");を入れて、あなたは下にスクロールするか、来る位置に配列リストから値を取得するときに変更する必要がありますそれが役に立てば幸い!

+0

テキストを使用しないでください。あなたの回答を話してください。 –

+0

それはうまくいかない: - / – user3336320

関連する問題