Android 当我单击按钮更改ListView中的textview时,更改了最后一行或另一行textview

Android 当我单击按钮更改ListView中的textview时,更改了最后一行或另一行textview,android,android-layout,listview,Android,Android Layout,Listview,我有这样的Costam ListView: 行1Button1(-)文本视图按钮2(+) 行2Button1(-)文本视图按钮2(+) 第3行按钮1(-)文本视图按钮2(+) 行4Button1(-)文本视图按钮2(+) 第5行按钮1(-)文本视图按钮2(+) 当我尝试在getView中为任何按钮设置单击Listener时,更改了另一行TextView 我单击第2行/按钮2(+),因此文本视图必须++(1到2)或单击第2行/按钮1(-),文本视图必须-(2到1),但第5行中的文本视图更改为或+

我有这样的Costam ListView:

行1
Button1(-)文本视图按钮2(+)

行2
Button1(-)文本视图按钮2(+)

第3行
按钮1(-)文本视图按钮2(+)

行4
Button1(-)文本视图按钮2(+)

第5行
按钮1(-)文本视图按钮2(+)

当我尝试在getView中为任何
按钮
设置
单击Listener
时,更改了另一行
TextView

我单击第2行/
按钮2(+)
,因此
文本视图
必须
++
(1到2)或单击第2行/
按钮1(-)
文本视图
必须
-
(2到1),但第5行中的
文本视图
更改为
+

这是我的适配器

public class adap_Mive extends BaseAdapter {

Context contextt;

private LayoutInflater myInflater;
public List<dm_Mive> list;

public adap_Mive(Context context) {
    myInflater = LayoutInflater.from(context);
    contextt = context;
}

@Override
public int getCount() {
    return list.size();
}

@Override
public Object getItem(int position) {
    return null;
}

@Override
public long getItemId(int position) {
    return 0;
}

public void setData(List<dm_Mive> list) {
    this.list = list;
}

public void clearData() {
    // clear the data
    list.clear();
}

Holder holder = null;

@Override
public View getView(final int position, View convertView, final ViewGroup parent) {

    if (convertView == null) {
        convertView                         = myInflater.inflate(R.layout.list_custom_froot, parent, false);
        holder                                 = new Holder();
        holder.tv_lbl_name                  = (TextView)convertView.findViewById(R.id.txt_title)  ;
        holder.tv_lbl_details               = (TextView)convertView.findViewById(R.id.txt_weight  );
        holder.tv_lbl_price                 = (TextView)convertView.findViewById(R.id.txt_price)  ;
        holder.txt                          = (TextView)convertView.findViewById(R.id.txt_meghda  r);
        holder.tv_img_pic                   = (ImageView)convertView.findViewById(R.id.img);
        holder.btn2                          = (ImageButton)convertView.findViewById(R.id.btn_kam  );
        holder.btn1                            = (ImageButton)convertView.findViewById(R.id.btn_zia  d);
        holder.btn_more                     = (ImageButton)convertView.findViewById(R.id.btn_mor  e);

        convertView.setTag(holder);
    } else {
        holder = (Holder) convertView.getTag();
    }

    holder.tv_lbl_name.setText                  ((list.get(position).getname()));
    holder.tv_lbl_details.setText               ((list.get(position).getdetails()));
    holder.tv_lbl_price.setText                 ((list.get(position).getprice()));

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

        @Override
        public void onClick(View v) {
            holder.txt.setText("10");
        }
    });

    holder.btn2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            holder.txt.setText("9");
        }
    });

    String profpic = list.get(position).getbmp();

    String Image_Name = null;

    String pic[] = profpic.split("/");
    for (String item : pic) {
        Image_Name = item;
    }

    File extStore = Environment.getExternalStorageDirectory();
    File picDir  = new File(extStore, "Froot");
    File file = new File(picDir, Image_Name);

    String ProfPic = file.toString();

    File f = new File(file.toString());
    if(f.exists())
    {
        holder.tv_img_pic.setImageURI              (Uri.parse(ProfPic));
    }
    else
    {
        Picasso.with(contextt)
                .load(profpic)
                .into(holder.tv_img_pic);
        Mod_Dwonload_File mdf = new Mod_Dwonload_File();
        mdf.Download_Adapter_Files(profpic);
    }

    return convertView;
}

public static class Holder
{
    public boolean needInflate;
    TextView    tv_lbl_name;
    TextView    tv_lbl_details;
    TextView    tv_lbl_price;
    ImageView   tv_img_pic;
    TextView    txt;
    ImageButton btn1;
    ImageButton btn2;
    ImageButton btn_more;
}

}
公共类适配器扩展了BaseAdapter{
语境;
私人充气机;
公开名单;
公共适配器(上下文){
myInflater=LayoutInflater.from(上下文);
contextt=上下文;
}
@凌驾
public int getCount(){
返回list.size();
}
@凌驾
公共对象getItem(int位置){
返回null;
}
@凌驾
公共长getItemId(int位置){
返回0;
}
公共无效设置数据(列表){
this.list=列表;
}
public void clearData(){
//清除数据
list.clear();
}
Holder=null;
@凌驾
公共视图getView(最终整型位置、视图转换视图、最终视图组父视图){
if(convertView==null){
convertView=myInflater.inflate(R.layout.list\u custom\u froot,parent,false);
保持架=新保持架();
holder.tv\u lbl\u name=(TextView)convertView.findViewById(R.id.txt\u title);
holder.tv\u lbl\u details=(TextView)convertView.findViewById(R.id.txt\u-weight);
holder.tv\u lbl\u price=(TextView)convertView.findViewById(R.id.txt\u price);
holder.txt=(TextView)convertView.findViewById(R.id.txt_meghda R);
holder.tv\u img\u pic=(ImageView)convertView.findViewById(R.id.img);
holder.btn2=(ImageButton)convertView.findViewById(R.id.btn_-kam);
holder.btn1=(ImageButton)convertView.findViewById(R.id.btn_zia d);
holder.btn_more=(ImageButton)convertView.findViewById(R.id.btn_more);
convertView.setTag(支架);
}否则{
holder=(holder)convertView.getTag();
}
holder.tv_lbl_name.setText((list.get(position.getname()));
holder.tv_lbl_details.setText((list.get(position.getdetails());
holder.tv_lbl_price.setText((list.get(position.getprice()));
holder.btn1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
holder.txt.setText(“10”);
}
});
holder.btn2.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
holder.txt.setText(“9”);
}
});
字符串profpic=list.get(position.getbmp();
字符串Image_Name=null;
字符串pic[]=profpic.split(“/”);
用于(字符串项:pic){
图像名称=项目;
}
文件extStore=Environment.getExternalStorageDirectory();
File picDir=新文件(extStore,“Froot”);
文件=新文件(picDir,图像名称);
字符串ProfPic=file.toString();
文件f=新文件(File.toString());
如果(f.exists())
{
holder.tv_img_pic.setImageURI(Uri.parse(ProfPic));
}
其他的
{
毕加索与(上下文)
.负载(profpic)
.into(holder.tv\u img\u pic);
Mod_Dwonload_File mdf=新Mod_Dwonload_File();
下载适配器文件(profpic);
}
返回视图;
}
公共静态类持有者
{
通货膨胀;
TextView tv_lbl_名称;
TextView电视节目详情;
TextView电视价格;
ImageView电视图片;
文本视图;
图像按钮btn1;
图像按钮btn2;
图像按钮btn_更多;
}
}

holder.txt.setText(“10”);您在这行中给出的语句是什么?如果他有1000个按钮,那么他会将setOnClickListner写入1000次吗?不,这只是您在适配器中使用setonclicklister的一次。已解决,我必须使用getParent而不是getTag | | View pv=(View)View.getParent();TextView txt=(TextView)pv.findviewbyd(R.id.txt_meghdar);txt.setText(“10”);现在我有另一个问题,我可以得到TextView.getText,但不能得到另一个TextView.getText,为空,为什么?holder.txt.getText();
 final Holder  holder                                 = new Holder();
    if (convertView == null) {
        convertView                         = myInflater.inflate(R.layout.list_custom_froot, parent, false);

        holder.tv_lbl_name                  = (TextView)convertView.findViewById(R.id.txt_title)  ;
        holder.tv_lbl_details               = (TextView)convertView.findViewById(R.id.txt_weight  );
        holder.tv_lbl_price                 = (TextView)convertView.findViewById(R.id.txt_price)  ;
        holder.txt                          = (TextView)convertView.findViewById(R.id.txt_meghda  r);
        holder.tv_img_pic                   = (ImageView)convertView.findViewById(R.id.img);
        holder.btn2                          = (ImageButton)convertView.findViewById(R.id.btn_kam  );
        holder.btn1                            = (ImageButton)convertView.findViewById(R.id.btn_zia  d);
        holder.btn_more                     = (ImageButton)convertView.findViewById(R.id.btn_mor  e);

        convertView.setTag(holder);
    } else {
        holder = (Holder) convertView.getTag();
    }

    holder.tv_lbl_name.setText                  ((list.get(position).getname()));
    holder.tv_lbl_details.setText               ((list.get(position).getdetails()));
    holder.tv_lbl_price.setText                 ((list.get(position).getprice()));
    holder.txt  ((list.get(position).gettextvalue)); //create the textvalue string in dm_Mive class nd set value empty

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

        @Override
        public void onClick(View v) {
          int butttonpostion = (Integer) buttonView.getTag();
       //  String v1=   holder.txt  .gettext();
        String v1=list.get(butttonpostion).gettextvalue);// direct get value to list

        dm_Mive dm= new dm_Mive()
        dm_Mive.settextvalue(v1);
       dm_Mive.setname(list.get(buttonpostion).getname())
        ..
        ....
      friendlist.set(butttonpostion, dm);

        }
    });