这是我对我的应用程序的要求。
1. 我需要在列表视图中显示项目列表,每个项目都有一个文本框和一个按钮。
2.每次运行应用程序时,项目的数量都不同。
3.单击按钮时,我需要阅读文本框内容并需要执行一些任务。
4.我在Adapter的“getView”中创建了动态文本框和按钮。
问题
1. 问题是在我在列表项的文本框中输入数据并关闭软键盘后,列表项的所有文本框都会重新创建,并且我丢失了我输入的数据。
2. 除了获取视图功能,还有其他方法可以创建动态文本框吗?
下面是我的代码片段
public class ImageAdaspter extends BaseAdapter {
private Context mContextL;
public ImageAdaspter(Context contextP) {
mContextL = contextP;
}
public int getCount() {
return lis.GetLength();
}
public Object getItem(int PositionP) {
return PositionP;
}
public long getItemId(int PositionP) {
return PositionP;
}
public View getView(int PositionP, View ConvertViewP, ViewGroup ParentP) {
RelativeLayout TheRelativelayoutL = new RelativeLayout(getApplicationContext());
TextView textview1 = new TextView(mContextL);
textview1.setText("HI");
textview1.setSingleLine(true);
textview1.setId(2);
EditText textBox1 = new EditText(mContextL);
textBox1.setEms(3);
textBox1.setId(4);
Button btn1 = new Button(mContextL);
btn1.setText("Process");
btn1.setTextSize(10);
btn1.setBackgroundColor(Color.parseColor("#FFFFFF"));
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Do stuff
Toast.makeText(getApplicationContext(), "Sample Message", Toast.LENGTH_SHORT).show();
}
});
TheRelativelayoutL.addView(textview1);
TheRelativelayoutL.addView(textBox1);
TheRelativelayoutL.addView(btn1);
return TheRelativelayoutL;
}
}