我有一个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());
}
答案 0 :(得分:1)
我认为如果你创建了扩展BaseAdapter的类。它可以在getView()方法中渲染列表视图。 因此,您可以轻松获取该列表行的位置(getView(int)参数定位您的渲染),也可以在其中创建,您的edittext也可以动态添加按钮设置监听器。
现在你可以通过使用onItemclickListener()来获取你点击行的位置,该列表返回用户点击的行的位置,
所以在Addbutton点击你可以创建Vector并使用它的方法在指定的索引处插入在vector中输入的元素。
所以,下次渲染新列表时,您可以使用此向量作为列表来传递数字数据。
希望解释对你有用..