在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);