2016-03-19 33 views
0

ich habe costum Listview wie folgt aus:Wenn ich auf Schaltfläche Textview in Listview, geändert letzte Zeile oder eine andere Zeile Textview ändern

Row1 Button1(-) TextView Button2(+)

Row2 Button1(-) TextView Button2(+)

Row3 Button1(-) TextView Button2(+)

Row4 Button1(-) TextView Button2(+)

Row5 Button1(-) TextView Button2(+)

Wenn ich versuche setOnClickListener in getView für jede Button, änderte eine andere Zeile TextView.

i Row Klicken 2/Button2(+), so TextView Must ++ (1 bis 2) oder Klicken Sie auf Zeile 2/Button1(-), TextView Must -- (2: 1) Aber TextView in Reihe geändert 5--- oder ++.

Dies ist mein Adapter

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; 
} 

} 
+0

holder.txt.setText ("10"); Was ist die Aussage, die Sie in dieser Zeile gaben? –

Antwort

0
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); 

     } 
    }); 
+0

wenn er 1000 Button hat dann schreibe er SetOnClickListner 1000 mal ?? –

+0

Nops nur einmal verwendet Sie den Setonclicklister im Adapter. – user6085773

+0

Gelöst, ich muss GetParent getTag || nicht verwenden View pv = (Ansicht) view.getParent(); TextView txt = (Textansicht) pv.findViewById (R.id.txt_meghdar); txt.setText ("10"); –

Verwandte Themen