TextView.setText和缺少刷新

时间:2014-05-21 08:17:14

标签: android

我正在使用

从辅助类开始一项新活动
private class IntentLauncher extends Thread {
@Override
   public void run() {
      try {
         Intent intent = new Intent(myContext, Class.forName(myContext.getPackageName() + nextActivity));
         intent.putExtra("Package", myPackage);
         myContext.startActivity(intent);
      } catch(Exception e) {
         Log.e("DownloadHelper", "DownloadHelper launcher error: " + e.getMessage());
      }
   }
}

然后在新活动中我要更改textView

protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_author_main);
   final TextView aboutAuthor = (TextView) findViewById(R.id.aboutText);
   Log.d("LibAuthorMain", "before getText(): "+aboutAuthor.getText().toString());
   aboutAuthor.setText("test");
   Log.d("LibAuthorMain", "after getText(): "+aboutAuthor.getText().toString());
}

xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:id="@+id/aboutText"
        android:textSize="25sp"
        android:textStyle="bold"/>

</RelativeLayout>

运行后,它显示在logcat中(New Text是via xml预定义值):

before getText(): New Text
after getText(): test

但它仍然显示屏幕上的旧值。怎么了?

[解决] 我发现了错误...对不起,它在我的显示器前50厘米... :(我在(库)类的子类的onCreate中留下了一个setContentView,我想在那里更改textView。羞辱我。 :(谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

我认为在启动活动时路径不正确意味着您评估&#34; myContext.getPackageName()+ nextActivity&#34;班级没有解决。 你在myContext.getPackageName()之后放了一个点吗?如果不是因为没有点,它就像&#34; com.android.testactivityname&#34;而这是不被认可的,所以你必须把它说成&#34; com.android.test.activityname&#34;

快速解决方案 - &gt;

&#34; myContext.getPackageName()+&#34;。&#34; + nextActivity&#34;这应该工作。请查看变量nextActivity以及包中Activity的实际名称。

请随时提出任何问题。