如何从listview获取edittext项目?

时间:2013-09-24 07:11:32

标签: android listview android-listview android-custom-view listadapter

我是android新手,我正在处理小任务。我对此感到震惊,我真的需要帮助。

我有一个自定义列表视图,其中包含textview,edittext和textview,下面是我有一个按钮。我的问题是,当我点击该按钮时,我需要从所有列表项中获取edittext值。

我不知道如何实现这一目标,所以我请求大家帮我解决这个问题。 下面是我用于自定义列表视图的代码。

public class MyAdapter extends ArrayAdapter<String> {

    private final Context context;
    private final String[] items;

    public MyAdapter(Context context, String[] items) {
        super(context, R.layout.list_row, items);
        this.context = context;
        this.items = items;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View rowView = inflater.inflate(R.layout.list_row, parent, false);
        TextView textView = (TextView) rowView.findViewById(R.id.text_Product);
        TextView textPrice = (TextView)rowView.findViewById(R.id.text_Price);
        EditText edit_Quantity = (EditText)rowView.findViewById(R.id.edit_Quantity);
        textView.setText(items[position]);

        String s = items[position];

        if (s.equals("Samsung")) {
            textPrice.setText("10000");
            edit_Quantity.setText("0");
        } else if (s.equals("Apple")) {
            textPrice.setText("15000");
            edit_Quantity.setText("1");
        } else if (s.equals("Nokia")) {
            textPrice.setText("8000");
            edit_Quantity.setText("2");
        } else {
            textPrice.setText("12000");
            edit_Quantity.setText("3");
        }
        return rowView;
    }
}

当我点击按钮时,我需要将edittext值存储在列表中。请帮帮我这个

提前致谢。

1 个答案:

答案 0 :(得分:1)

只需在代码中添加一个列表,如

List <String> editcontent= new ArrayList<String>();

现在当您将项目写入编辑文本时。 还可以输入列表视图

    editcontent.add(0); .// for samsung (ref. to your code)

if (s.equals("Samsung")) {
            textPrice.setText("10000");
            edit_Quantity.setText("0");
            editcontent.add(0);
        } else if (s.equals("Apple")) {
            textPrice.setText("15000");
            edit_Quantity.setText("1");
            editcontent.add(1);
        } else if (s.equals("Nokia")) {
            textPrice.setText("8000");
            edit_Quantity.setText("2");
            editcontent.add(2);
        } else {
            textPrice.setText("12000");
            edit_Quantity.setText("3");
            editcontent.add(3);
        }

然后您可以从此列表中获取所需的记录 例如:

editcontent.get(position);