gpt4 book ai didi

java - Android:Activity 到 Activity,第二个 Activity 无法调用 setContentView?

转载 作者:行者123 更新时间:2023-12-01 19:17:58 27 4
gpt4 key购买 nike

我将 Activity 1 (A1) 转到 Activity 2 (A2),并且在 A2 中的 setContentView 处发生崩溃。 A1是一个ListActivity,它从xml中拉取列表,并使用Intent传递要在A2中显示的数据(putExtra)。 A2 提取 xml 并使用 A1 中的额外数据来了解要显示的内容,但我的 setContentView 行使应用程序崩溃。

在研究可能的解决方案时,我读到 setContentView 必须从 UI 线程调用;我的A2不是UI线程吗?

代码:

-- A1 --

public class activity extends ListActivity {
/** Called when the activity is first created. */
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
//setContentView(R.layout.main);
String[] rmenu = getResources().getStringArray(R.array.root_menu);
if (rmenu != null) {
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, rmenu));
}
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
// Get the item that was clicked
//Object o = this.getListAdapter().getItem(position);
//String keyword = o.toString();
//Toast.makeText(this, "You selected: " + position, Toast.LENGTH_LONG).show();
//
Intent myIntent = new Intent(v.getContext(), Activity1.class);
myIntent.putExtra("com.activity.Key", position);
startActivity(myIntent);
}
}

-- A2 --

public class Activity1 extends activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
//setContentView(R.layout.main2);
int data = 0;
Bundle extras = getIntent().getExtras();
if (extras != null) {
data = extras.getInt("com.activity.Key");
} else {
data = 0;
}
String[] con = getResources().getStringArray(R.array.content);
//Toast.makeText(context, con[data], Toast.LENGTH_SHORT).show();
TextView tv = new TextView(this);
String dis = con[data];
tv.setText(dis);
setContentView(tv);
}
}

我已阅读有关“Activity ”和“内容 View ”的文档,但它们并没有很好地解释不能做什么。我在这里被自己的脚绊倒了吗?

list :

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.activity"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="4" />

<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".activity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

</activity>
<activity android:name=".Activity1" android:label="@string/app_name"> </activity>
</application>
</manifest>

最佳答案

您在 A2 中的类(class)扩展了 A1 中的类(class)( Activity )。您可能想扩展 android.app.Activity。

关于java - Android:Activity 到 Activity,第二个 Activity 无法调用 setContentView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5730557/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com