2017-09-01 82 views
0

我有Json数据并绑定listview.It没关系。 当我点击行中的按钮时,错误行上的文本框正在更新。Android - Listview错误的位置Getview

我的适配器代码。谢谢大家。

嗨,大家好,

我JSON数据并结合listview.It的确定。 当我点击行中的按钮时,错误行上的文本框正在更新。

我的适配器代码。谢谢大家。

public class UrunAdapter extends ArrayAdapter<Urunler> { 

ArrayList<Urunler> urunlist; 
private static LayoutInflater vi; 
int Resource; 
ViewHolder holder; 
private Context context; 
public ArrayList<UrunlerSecilen> secilenUrunler=new ArrayList<UrunlerSecilen>();; 


public UrunAdapter(Context context, int resource, ArrayList<Urunler> objects) { 
    super(context, resource, objects); 
    vi = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    Resource = resource; 
    urunlist = objects; 
    this.context = context; 

} 


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

    if (convertView == null) { 
     convertView = vi.inflate(R.layout.row, parent, false); 
     ViewHolder holder = new ViewHolder(); 
     //setting up the Views 
     convertView.setTag(holder); 
    } 

    ViewHolder holder = (ViewHolder) convertView.getTag(); 


    holder.tvUrunAdi=(TextView)convertView.findViewById(R.id.tvUrunAdi); 




    holder.tvFiyat=(TextView)convertView.findViewById(R.id.tvFiyat); 

    holder.imgUrunFoto=(ImageView)convertView.findViewById(R.id.imgUrunFoto); 

    holder.btnArttir=(TextView)convertView.findViewById(R.id.btnArttir); 

    holder.btnEksilt=(TextView)convertView.findViewById(R.id.btnEksilt); 


    final EditText edtAdet=(EditText)convertView.findViewById(R.id.edtAdet); 



    holder.btnArttir.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      String strAdetVal=edtAdet.getText().toString(); 


      int adetValue=Integer.parseInt(strAdetVal); 



      if (adetValue>=20) 
      { 

       adetValue=20; 
      } 

      else 
      { 
       adetValue=adetValue+1; 
      } 
      edtAdet.setText(Integer.toString(adetValue)); 


     } 
    }); 



    holder.btnEksilt.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      String strAdetVal=edtAdet.getText().toString(); 


      int adetValue=Integer.parseInt(strAdetVal); 



      if (adetValue<=0) 
      { 

       adetValue=0; 
      } 

      else 
      { 
       adetValue=adetValue-1; 
      } 

      edtAdet.setText(Integer.toString(adetValue)); 


     } 
    }); 





    holder.tvUrunAdi.setText(urunlist.get(position).getUrunAdi()); 


    Picasso.with(context).load(urunlist.get(position).getFoto()).fit().into(holder.imgUrunFoto); 



    holder.tvFiyat.setText(urunlist.get(position).getFiyat()); 




    return convertView; 

} 


static class ViewHolder { 

    public TextView tvUrunAdi; 
    public TextView tvFiyat; 
    public ImageView imgUrunFoto; 
    public EditText edtAdet; 
    public TextView btnArttir; 
    public TextView btnEksilt; 
    public TextView btnEkle; 
    public TextView lblAdet; 
    public TextView tvUrunId; 



} 


private static class DownloadImageTask extends AsyncTask<String, Void, Bitmap> { 


    ImageView bmImage; 


    public DownloadImageTask(ImageView bmImage) { 



     this.bmImage = bmImage; 




    } 

    protected Bitmap doInBackground(String... urls) { 
     String urldisplay = urls[0]; 
     Bitmap mIcon11 = null; 
     try { 
      InputStream in = new java.net.URL(urldisplay).openStream(); 
      mIcon11 = BitmapFactory.decodeStream(in); 
     } catch (Exception e) { 
      Log.e("Error", e.getMessage()); 
      e.printStackTrace(); 
     } 
     return mIcon11; 
    } 

    protected void onPostExecute(Bitmap result) { 
     bmImage.setImageBitmap(result); 

    } 

} 

}

回答

1

试试这个下面的代码:

注册您的EdittextViewHolder类,然后 如下

String strAdetVal=edtAdet.getText().toString();

实例使用该按钮的的onclick更改您的密码

String strAdetVal=holder.edtAdet.getText().toString(); 

我希望这可以帮助你

+0

没有工作,我恨这个列表视图 – Developer007

+0

你faceing什么问题发表您的logcat @ Gowthaman中号 –

+0

我在列表视图row.For例如我按下第一行点击按钮。第一行和最后一行按钮背景变化。我点击第二个按钮。第二个按钮和上一个按钮颜色变化。 – Developer007