Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java edittext中的值don';在它聚焦之前,它不会显示。安卓_Java_Android_Android Edittext_Viewflipper - Fatal编程技术网

Java edittext中的值don';在它聚焦之前,它不会显示。安卓

Java edittext中的值don';在它聚焦之前,它不会显示。安卓,java,android,android-edittext,viewflipper,Java,Android,Android Edittext,Viewflipper,我正在构建一个基于外部数据的应用程序。布局根据indata分为不同的块。这些块在viewflipper的帮助下显示。目前,在每个块中都有一个或多个“文本视图”和“编辑文本”。在flipper的第一页上,所有数据都会在TextView和EditText中显示。但是在viewflipper的其他页面上,edittext中的值在edittext聚焦之前不会显示。我不知道为什么。我想说清楚。所有edittext的值实际上都存在,但在edittext聚焦之前不会显示。在我运行应用程序的所有设备上(emul

我正在构建一个基于外部数据的应用程序。布局根据indata分为不同的块。这些块在viewflipper的帮助下显示。目前,在每个块中都有一个或多个“文本视图”和“编辑文本”。在flipper的第一页上,所有数据都会在TextView和EditText中显示。但是在viewflipper的其他页面上,edittext中的值在edittext聚焦之前不会显示。我不知道为什么。我想说清楚。所有edittext的值实际上都存在,但在edittext聚焦之前不会显示。在我运行应用程序的所有设备上(emulator、HTC Desire、HTC Wildfire),问题都是一样的。有人知道如何解决这个问题吗

以下是生成布局的类:

public class ModuleLayout extends LinearLayout {

public ModuleLayout(Context context, ArrayList<BaseModuleItem> itemList) {
    super(context);
    TableLayout tempTable = new TableLayout(context);

        for (int i = 0; i < itemList.size(); i++)
        {
            TableRow tempRow = new TableRow(context);
            TextView tempTextView = new TextView(context);
            tempTextView.setText(itemList.get(i).getName());

            EditText tempEditText = new EditText(context);
            tempEditText.setText(itemList.get(i).getItemValue());

            tempRow.addView(tempTextView);
            tempRow.addView(tempEditText);

            tempTable.addView(tempRow);
        }

        tempTable.setColumnStretchable(1, true);
        this.addView(tempTable);
    }
}
公共类ModuleLayout扩展了LinearLayout{
公共ModuleLayout(上下文,ArrayList itemList){
超级(上下文);
TableLayout Testable=新的TableLayout(上下文);
对于(int i=0;i
这是一张正在发生的问题的图片


左图显示其所有值。右图片位于viewflipper的第二个位置,不显示编辑文本中的值,但第一个有焦点的图片除外。我还应该提到,在edittext获得焦点后,即使我在viewflipper中跳转到其他视图然后返回,它仍会继续显示值。

由于没有看到您的完整代码,我提出了一些猜测建议,但您是否尝试过textView.invalidate()(如果从GUI线程调用)或textView.postInvalidate()(如果从另一个线程调用)?

此处显示的布局不在UI线程上,这意味着无论您更改什么,在UI线程(也称为主线程)更新之前,您都不会看到任何内容。UI/主线程是您所有活动的运行方式,因此很容易认为这些内容只是自动更新(因为我假设您之前所做的大部分工作也在活动中的某个地方)。onFocusChanged事件(在edittext中单击)将通过对自身调用invalidate()来更新UI线程。您可以通过调用edittext.invalidate()来强制更新它如果需要,但通常最好在创建后进行自然更新。在没有看到其余代码的情况下,这是我能为您做的最好的事情,我希望这对您有所帮助:)

您是否能够发布复制问题所需的完整的最小代码?我想我已经将问题缩小到了这些Widts填充的viewflipper。如果我告诉viewflipper通过运行命令SetCurrentView(int);,显示下一个视图,我没有问题。问题是当我进行fling时(动画视图以跟随我的手指)。我正在使用参数“消失”、“不可见”和“可见”。我会在有时间的时候发布代码。我需要先将代码修剪下来,然后才能发布到这里。你解决过这个问题吗?