我正在开发一个显示表格的应用程序(如excel的东西),这样每行允许用户输入项目的几个特征的值(每个项目的特征相同)。
我已经为该行编写了一个xml文件,并且在ListView中,我为每个项目为文件充气。该行基本上由几个EditText和TextView组成。
一切似乎都运行良好但是当我输入数据时,一旦虚拟键盘消失,我之前输入的每个数据也会消失。 膨胀似乎是一个问题,因为当我直接使用setContentView和我的行的XML文件时,没有这样的问题。
有什么想法吗?
以下是我的XML文件膨胀的代码(它是从ArrayView的ArrayView的getView方法调用的):
private View generateItemRowView(int position, ViewGroup parent){
String itemName = itemList[position];
LayoutInflater inflater=this.getLayoutInflater();
View result =inflater.inflate(R.layout.item_row_layout, parent, false);
Button rowName=(Button)result.findViewById(R.id.row_item_name);
rowName.setTag(""+position);
rowName.setText(itemName);
return result;
}
由于
答案 0 :(得分:0)
尝试使用以下方法更改第二行:
LayoutInflater inflater = (LayoutInflater) this.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
这适用于我的项目^^
答案 1 :(得分:0)
afaik ListView回收视图(对所有数据使用几个)。任何数据更改(发生时或输入端)都必须存储在某处。必要时(getView调用),也必须设置数据(已更改)。 搜索Mark Murphy的“臭名昭着”花式列表。
答案 2 :(得分:0)
好的或多或少找到了问题的根源,并改变了解决问题的策略。
似乎ListView
在充气时不喜欢EditText
行(至少在我做的事情上。所以我创建了一个LinearLayout
,其中包含了我以前所有的行在我的ListView
中,将生成的LinearLayout
插入ScrollView
。现在一切正常。但我仍然无法找到为什么它不能按我最初的方式工作。