我正在使用
从辅助类开始一项新活动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。羞辱我。 :(谢谢你的时间!
答案 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的实际名称。
请随时提出任何问题。