簡體   English   中英

在列表視圖中獲取edittext的值

[英]Get values of edittext in listview

我想在列表視圖中獲取edittext的值。 這是我的CustomAdapter.java

public class CustomAdapter extends BaseAdapter {

Context context;
List<RowItem> rowItem;

ImageView imgIcon, add_cart;
TextView txtTitle;

EditText colli, prezzo, quantita;
String colliStr, prezzoStr, quantitaStr;

ArrayList<String> ArrayPrezzo = new ArrayList<String>();
ArrayList<String> ArrayQuantita = new ArrayList<String>();
ArrayList<String> ArrayColli = new ArrayList<String>();

CustomAdapter(Context context, List<RowItem> rowItem) {
    this.context = context;
    this.rowItem = rowItem;

}

@Override
public int getCount() {

    return rowItem.size();
}

@Override
public Object getItem(int position) {

    return rowItem.get(position);
}

@Override
public long getItemId(int position) {

    return rowItem.indexOf(getItem(position));
}
@Override
public boolean  areAllItemsEnabled() {
    return false;
}

@Override
public boolean isEnabled(int position) {
    return false;
}

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

    if (convertView == null) {
        LayoutInflater mInflater = (LayoutInflater) context
                .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        convertView = mInflater.inflate(R.layout.single_row, null);
    }

    imgIcon = (ImageView) convertView.findViewById(R.id.icon);
    txtTitle = (TextView) convertView.findViewById(R.id.title);
    add_cart = (ImageView) convertView.findViewById(R.id.icon);

    colli = (EditText) convertView.findViewById(R.id.editText3);
    prezzo = (EditText) convertView.findViewById(R.id.editText2);
    quantita = (EditText) convertView.findViewById(R.id.editText);

    add_cart.setFocusable(true);
    add_cart.setClickable(true);

    final RowItem row_pos = rowItem.get(position);
    // setting the image resource and title
    imgIcon.setImageResource(R.drawable.product);
    txtTitle.setText(row_pos.getTitle());

    add_cart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           // HERE I WANT GET THE VALUES OF EDITTEXT;

        }
    });

        return convertView;
}

有人能幫助我嗎? 在ly listview中有:textview | edittext1 | edittext2 | edittext3 | imageview我不知道如何在單擊按鈕時獲取當前位置的edittext值。 你能用我的代碼舉例嗎? 謝謝你

更新:我已經編輯了偵聽器:

add_cart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            prezzoStr = prezzo.getText().toString();
            Toast.makeText(context, prezzoStr, Toast.LENGTH_SHORT)
                    .show();

        }
    });

但prezzoStr為空。 吐司什么也沒顯示。 我認為需要使用row_pos變量來獲取確定的edittext的值。 請幫助

不難

add_cart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          String colliValue = colli.getText().toString());
          String prezzoValue = prezzo.getText().toString());
          String quantitaValue = quantita.getText().toString());
        }
});

您必須先獲取父視圖,然后按ID查找文本視圖:

 add_cart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
    TextView prezzo = (TextView) findByIdRecursively(v, R.id.editText2);
               String prezzoStr = prezzo.getText().toString();
            }
        });

...

public View findByIdRecursively(View view, int targetId) {
    View result = view.findViewById(targetId);
    if (result != null) {
        return result;
    }
    View parent = (View) view.getParent();
    if (parent == null) {
        return null;
    }
    return findByIdRecursively(parent, targetId);
}

onClick中的視圖是被單擊的視圖(在這種情況下為add_cart)

...或者您可以執行以下操作:

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

...

    add_cart = (ImageView) convertView.findViewById(R.id.icon);
    add_cart.setTag(convertView);

    add_cart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
    TextView prezzo = (TextView) ((View)v.getTag()).findViewById(R.id.editText2);
               String prezzoStr = prezzo.getText().toString();
            }
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM