我对 android 编程相当陌生,在我的代码中更新 TextView 时遇到问题。我可以设置它并从 onResume() 正确更新。
后来我打电话
startActivityForIntent(my.android.activity,0)
然后我在这个方法中使用 setText:
onActivityResult(int requestCode, int resultCode, Intent returnIntent){
    if (resultCode == Activity.RESULT_OK){
        String myString= returnIntent.getString("mystr","empty");
        myClass=myClass.interperetResults(myString);  //this method returns correctly
        leftText.setText(""+myClass.toString());
        leftText.invalidate() //neither invalidate() or postInvalidate() changes result
    }
};
它似乎在 TextView 类中更新(我使用 System.out 来调试它),但它不会在屏幕上更新。
据我所知,我只需要调用 TextView.invalidate() 或 TextView.postInvalidate(),它们都不起作用。有什么我想念的,还是什么?我已经尝试了其他帖子中的许多不同建议,但在这里无济于事。
我还有一个 rightText 对象和 if 语句,用于返回的字符串何时为空,但这是我遇到问题的部分。如果你们需要我的代码的任何其他部分,请告诉我。我很乐意提供帮助。再次感谢您的输入。
编辑:根据要求,这是我的 xml 布局。虽然问题不是我看不到风景。当我在 onResume() 中调用 setText 时,它会正确显示和更改。无论如何,这是我的 xml 代码。我不想将变量名称更改为通用名称,所以实际上就是这样。我正在与该项目的合作伙伴一起工作,他是创建 xml 和布局的人,所以我不完全确定这里的一切是什么。我希望你们能理解它。
这是 onCreate:
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
}
和 onResume:
protected void onResume() {
    super.onResume();
    // The activity has become visible (it is now "resumed").
    setContentView(R.layout.play);
    myEquation = new Equation(getResources());
    leftText = (TextView) this.findViewById(R.id.playLeftEquation);
    rightText = (TextView) this.findViewById(R.id.playRightEquation);
    //leftText.setText("No data");
    //rightText.setText("No data");  //The textviews update fine here.  
               //Currently commented out because I thought that maybe this was 
               //overwriting the other setText, but still no change.
}
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/atomic_bckgrd"
    android:columnCount="11" >
    <ImageButton    
        android:id="@+id/playTrashCanButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_columnSpan="2"
        android:layout_gravity="left"
        android:layout_row="0"
        android:contentDescription="@string/trash"
        android:onClick="clickHandler"
        android:src="@drawable/trash" />
    <Button
        android:id="@+id/playEditButton"
        android:layout_column="2"
        android:layout_row="0"
        android:onClick="clickHandler"
        android:text="@string/edit" />
    <ImageButton
        android:id="@+id/playRulesButton"
        android:layout_column="4"
        android:layout_columnSpan="5"
        android:layout_row="0"
        android:contentDescription="@string/rules"
        android:onClick="clickHandler"
        android:src="@drawable/rules1" />
    <TextView            //One of the non-updating fields
        android:id="@+id/playLeftEquation"
        android:layout_column="1"
        android:layout_gravity="bottom"
        android:layout_row="1"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    <ImageButton
        android:id="@+id/playEnterButton"
        android:layout_column="2"
        android:layout_gravity="bottom"
        android:layout_row="1"
        android:contentDescription="@string/enter"
        android:onClick="clickHandler"
        android:src="@drawable/enter1" />
    <TextView               //The other non-updating field
        android:id="@+id/playRightEquation"
        android:layout_column="3"
        android:layout_columnSpan="6"
        android:layout_gravity="bottom"
        android:layout_row="1"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    <Space
        android:layout_width="52dp"
        android:layout_height="1dp"
        android:layout_column="0"
        android:layout_row="0" />
    <Space
        android:layout_width="148dp"
        android:layout_height="1dp"
        android:layout_column="1"
        android:layout_row="0" />
    <Space
        android:layout_width="161dp"
        android:layout_height="1dp"
        android:layout_column="2"
        android:layout_row="0" />
    <Space
        android:layout_width="46dp"
        android:layout_height="1dp"
        android:layout_column="3"
        android:layout_row="0" />
    <Space
        android:layout_width="36dp"
        android:layout_height="1dp"
        android:layout_column="4"
        android:layout_gravity="fill_horizontal"
        android:layout_row="0" />
    <Space
        android:layout_width="1dp"
        android:layout_height="160dp"
        android:layout_column="0"
        android:layout_gravity="fill_horizontal"
        android:layout_row="0" />
</GridLayout>