无法将数据放入膨胀的EditText:S

时间:2011-08-03 12:18:26

标签: android

我在那里有一种奇怪的行为。可能是一些愚蠢的但无法找到解决方案

我正在开发一个显示表格的应用程序(如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;      
}

由于

3 个答案:

答案 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。现在一切正常。但我仍然无法找到为什么它不能按我最初的方式工作。