从listview中动态创建的编辑文本框中获取输入值

时间:2012-06-21 10:05:46

标签: android arrays button android-edittext clicklistener

我有一个listview,其中包含根据listview中元素的数量动态创建的几个EditTexts.listview中的项目由来自服务器的数据填充。对于每个编辑文本,在同一列表视图中的每一行中都有一个“添加”按钮。我想要的是,当用户在这些编辑文本框中输入一些数字并点击“添加”按钮时,输入的数字应按照点击的顺序存储在某个数组中(首先输入数组的第一个位置)。数据用于将来用于在单独的列表视图中显示输入数字。在我的代码中,当我在编辑文本框中输入一些数字并单击“添加”时,只有第一个输入有效。在下次单击时,没有任何作用(此处显示吐司)..请帮助..您可以编辑代码。谢谢提前。(我想要的是存储所有这些输入,其用户选择仅在选定的框中输入)

public void Addcart(View v)
{

try{    final EditText editnum= (EditText) findViewById(R.id.edittext); 

View.OnClickListener handler = new View.OnClickListener(){
    public void onClick(View v) {   
        if(v.getId()==R.id.addbutton)
        { //  switch (v.getId()){
      //  case R.id.addbutton:
            Toast.makeText(getBaseContext(), 
                    "Input: " + editnum.getText().toString(), 
                    Toast.LENGTH_SHORT).show();
           //   break;
        }
    }
};

findViewById(R.id.addbutton).setOnClickListener(handler);
}
catch(Exception e){
    Log.e("Android Edit Text Example", e.toString());

}

1 个答案:

答案 0 :(得分:1)

我认为如果你创建了扩展BaseAdapter的类。它可以在getView()方法中渲染列表视图。 因此,您可以轻松获取该列表行的位置(getView(int)参数定位您的渲染),也可以在其中创建,您的edittext也可以动态添加按钮设置监听器。

现在你可以通过使用onItemclickListener()来获取你点击行的位置,该列表返回用户点击的行的位置,

所以在Addbutton点击你可以创建Vector并使用它的方法在指定的索引处插入在vector中输入的元素。

所以,下次渲染新列表时,您可以使用此向量作为列表来传递数字数据。

希望解释对你有用..