Android:通过属于ListView的按钮更新ListView中的多个EditTexts

时间:2013-12-21 22:26:00

标签: android listview android-listview

我是android的新手,我想问一些问题,我在几个主题中搜索过,找不到具体的解决方案。

我想创建一个看起来像这样的listView:

http://postimg.org/image/9ib8gjq95/

/////////////////////////////////////////////// ///////////////

// // TextView的//的EditText按钮+ //按钮 - //

/////////////////////////////////////////////// /////////

使用相同模式的新行(TextView,EditText,Button +,Button - )动态更新此listView。

我想点击一行的+/-按钮并更改此行中EditText中存在的数字。

package com.example.test2;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;


public class EditCAdapter extends ArrayAdapter<Prosthesi> {
int counter=0;

Context context;
String onoma;
int layoutResourceId;
ArrayList<Prosthesi> data = new ArrayList<Prosthesi>();


public EditCAdapter(Context context, int layoutResourceId,
ArrayList<Prosthesi> 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) {
View row3 = convertView;
 UserHolder holder = null;

if (row3 == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row3 = inflater.inflate(layoutResourceId, parent, false);
holder = new UserHolder();
holder.kodikos=(TextView)row3.findViewById(R.id.textD);
holder.plus = (Button) row3.findViewById(R.id.buttD);
holder.minus=(Button) row3.findViewById(R.id.buttD2);
holder.posotita=(EditText)row3.findViewById(R.id.e4);

row3.setTag(holder);
} else {
holder = (UserHolder) row3.getTag();
}
Prosthesi user = data.get(position);
holder.kodikos.setText(user.getName());

holder.plus.setOnClickListener(new View.OnClickListener() {

  @Override
  public void onClick(View v) {
      // TODO Auto-generated method stub
      counter++;

      //do the stuff I described

         //tried this but it isn't working!
        //   UserHolder holder=(UserHolder)v.getTag();
       // holder.posotita.setText(String.valueOf(counter));

  }
});

return row3;
}






static class UserHolder {
TextView kodikos;
EditText posotita;
Button plus;
Button minus;




 }

 }
thnx提前!!!!

1 个答案:

答案 0 :(得分:0)

实际上,这样您就无法获得需要更改的行edittext。首先为两个按钮设置标签,然后在getview内初始化计数器,并根据setonclicklistner上的按钮行为更改edittext上的值。这肯定会起作用。请尝试一下,告诉我你是否需要更多的帮助。