在Android应用程序中使用Intent来显示另一个活动
在我的Android应用程序中,我有两个活动类。 我有第一个button,我想显示第二个点击时,但我得到一个错误。 这里是类:
public class FirstActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button orderButton = (Button)findViewById(R.id.order); orderButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(FirstActivity.this, OrderScreen.class); startActivity(intent); } }); } }
点击button时应该显示的第二个类,但从来没有:
public class OrderScreen extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.order); Button orderButton = (Button) findViewById(R.id.end); orderButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { finish(); } }); } }
如何创build一个显示第二个活动的button?
问题是OrderScreen Activity
没有被添加到AndroidManifest.xml中 。 一旦我将它作为一个应用程序节点添加,它工作正常。
<activity android:name=".OrderScreen" />
将这行添加到您的AndroidManifest.xml中:
<activity android:name=".OrderScreen" />
—- FirstActivity.java —–
package com.mindscripts.eid; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class FirstActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.main); Button orderButton = (Button) findViewById(R.id.order); orderButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(FirstActivity.this,OrderScreen.class); startActivity(intent); } }); } }
— OrderScreen.java —
package com.mindscripts.eid; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class OrderScreen extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.second_class); Button orderButton = (Button) findViewById(R.id.end); orderButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); } }
— AndroidManifest.xml —-
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.mindscripts.eid" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".FirstActivity" 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=".OrderScreen"></activity> </application>
使用此代码:
Intent intent=new Intent(context,SecondActivty.class); startActivity(intent); finish();
上下文:参考当前的活动上下文,
请确保您已在Android清单文件中添加了活动。
以下代码在Android清单文件中添加活动
<Activity name=".SecondActivity"> </Activity>
<activity android:name="[packagename optional].ActivityClassName"></activity>
简单地添加我们想要切换的活动应该放在清单文件中
当你在android文件中创build任何活动时,你必须在AndroidManifest.xml中指定它
<uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".MyCreativityActivity" 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=".OrderScreen"></activity> </application>
b1 = (Button) findViewById(R.id.click_me); b1.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent i = new Intent(MainActivity.this, SecondActivity.class); startActivity(i); } });
你可以使用调用的视图的上下文。 例:
Button orderButton = (Button)findViewById(R.id.order); orderButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(/*FirstActivity.this*/ view.getContext(), OrderScreen.class); startActivity(intent); } });
Intent i = new Intent("com.Android.SubActivity"); startActivity(i);
在清单文件中添加活动
<activity android:name=".OrderScreen" />
在清单
<activity android:name=".OrderScreen" />
在必须放置意图代码的Java代码中
startActivity(new Intent(CurrentActivity.this, OrderScreen.class);