2016-12-06 39 views
0

我有一個文本框和一個按鈕Arrayadpter。每次按下按鈕時,文本框都應該添加1.問題是,當我滾出屏幕時,輸入項丟失。我知道我應該使用CheckForUpdateListener或類似的東西,但我不知道如何實現它。感謝您的幫助: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

每當你滾動向上或向下,您應該使用ArrayList或數組來保存最近更新的值......,用新值的視圖對象覆蓋哪些舊值並不會存儲在任何地方。你必須將它們存儲在數組列表中或類似的東西。

假設您正在點擊第4行按鈕對象。 TextView的應該改變你的第4行,以便把ArrayList.set(4,"updatedvalue");,當你滾動向下或向上與位置來得到數組列表中的數值...至於holder.textview.setText(ArrayList.get(position))

這會做你需要什麼...

希望能幫助到你!

+0

請不要在您的答案中使用文字發言 –

+0

它不起作用: - / – user3336320

相關問題