亲爱的所有人; 我在布局和活动方面真的很困惑,我在windows应用程序中使用表单和类,但在这里看起来有点不同,所以我不知道什么时候我会使用和布局,当我必须切换活动时。 ..无论如何我构建了一个示例应用程序,我决定让每个活动都有它的布局。 我想在活动之间切换。所以我在AndroidManifest.XML中编写代码
<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>
<intent-filter>
<action android:name="android.content.intent.ActionBootCompleted" />
<category android:name="android.content.intent.CategoryDefault" />
</intent-filter>
</activity>
<activity android:name=".activity1"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN2" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".home"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN2" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
然后在每个onclickListener中:
Button b1=(Button)findViewById(R.id.button1);
b1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//alert.show();
// setContentView(R.layout.menu);
String packageName = activity1.class.getPackage().getName();
String packageAndClassName = activity1.class.getName();
Intent intent = new Intent().setClassName(packageName,packageAndClassName);
startActivity(intent);
}
});
所以它在活动之间切换到Home但是当我想从home切换到actvity1时它会让我回到活动...
那么问题是什么?
答案 0 :(得分:3)
此代码段应该更好地启动您的activity1
。您必须将示例中的MyActivity
重命名为托管代码段的活动类的名称(或提供备用上下文变量)。
Intent intent = new Intent(MyActivity.this, activity1.class);
startActivity(intent);
答案 1 :(得分:1)
我们可以看到activity
是您的主要活动,所以
Intent intent = new Intent().setClassName(packageName,packageAndClassName);
将切换为acticity
。
尝试使用
Intent intent = new Intent(HomeActivity.this, activity1.class);
更多:
public Intent (Context packageContext, Class<?> cls)
为特定组件创建意图。所有其他字段(操作,数据,类型,类)都为空,但稍后可以使用显式调用对其进行修改。这提供了一种方便的方法来创建旨在执行硬编码类名的intent,而不是依赖系统为您找到合适的类; Select-String
答案 2 :(得分:-1)
查看主题Tasks and Back Stack。它解释了非常清楚地在活动之间导航的概念。