我開始從助手類的新活動與TextView.setText,而遺漏刷新
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(新文本是通過xml預定義值):
before getText(): New Text
after getText(): test
但它仍然在屏幕上顯示舊值。怎麼了?
[解決] 我發現了錯誤...對不起,它是我的顯示器前50釐米... :(我在(庫)類的子類的onCreate中留下了一個setContentView,在那裏我想(感謝您的時間!)
沒有錯。你爲什麼覺得有什麼不對? – Blackbelt
可能是你的意思是使用'setText'的'append' insted !.爲什麼你需要一個線程來發起一個活動? – Raghunandan
@blackbelt:爲什麼它不顯示屏幕上的新值?它仍然顯示舊的價值。 – Glueckstiger