在Android中从一个活动移动到另一个活动

我想从一个活动转移到另一个(使用虚拟设备)。 当我点击button移动,我的模拟器的一个对话框unfortunately SMS1 has stopped working显示unfortunately SMS1 has stopped working (SMS1是我的应用程序名称)。

任何人都可以帮我纠正我的代码吗?

MainActivity.java:

 package com.example.sms1; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity implements OnClickListener { Button b1; TextView tv1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b1 = (Button) findViewById(R.id.button1); tv1 = (TextView) findViewById(R.id.textView1); b1.setOnClickListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public void onClick(View v) { // TODO Auto-generated method stub Intent i = new Intent(getApplicationContext(),NextActivity.class); startActivity(i); setContentView(R.layout.avtivity_next); } } 

这是NextActivity

 package com.example.sms1; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.widget.TextView; public class NextActivity extends Activity { TextView tv1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.avtivity_next); tv1 = (TextView) findViewById(R.id.textView1); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 

的manifest.xml

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sms1" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.sms1.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 

NextActivityLayout

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".NextActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="next activity" /> </RelativeLayout> 

MainActivity布局

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_marginTop="80dp" android:layout_toRightOf="@+id/textView1" android:text="Button" /> </RelativeLayout> 

Solutions Collecting From Web of "在Android中从一个活动移动到另一个活动"

您尚未在AndroidManifest.xml文件中定义NextActivity

</activity>标签之后的android清单中添加这些行。 它应该工作。

 <activity android:name=".NextActivity" > </activity> 

最终的代码将会是

 <application android:allowBackup="true" android:icon="@drawable/app_icon" android:label="@string/app_name" > <activity android:name=".MainActivity" android:label="Main Activity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".NextActivity" > </activity> </application> 

首先,您必须将此代码用于MainActivity.java

 @Override public void onClick(View v) { // TODO Auto-generated method stub Intent i = new Intent(getApplicationContext(),NextActivity.class); startActivity(i); } 

你可以通过这种方式传递意图。

第二

manifest.xml文件中添加正确的条目。

 <activity android:name=".NextActivity" /> 

现在看看会发生什么。

只需将您的NextActivity添加到Manifest.XML文件中

 <activity android:name="com.example.sms1.NextActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> </intent-filter> </activity> 

activity2中的button1

代码写在活动2

 button1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // starting background task to update product Intent fp=new Intent(getApplicationContext(),activity1.class); startActivity(fp); } }); 

这可能有帮助

1)放置setContentView(R.layout.avtivity_next); 到下一个activity的onCreate()方法就像这个(main)activity的onCreate()

2)如果你还没有定义你的应用程序清单文件中的下一个活动,那么也要这样做,如:

 <application android:allowBackup="true" android:icon="@drawable/app_icon" android:label="@string/app_name" > <activity android:name=".MainActivity" android:label="Main Activity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".NextActivity" android:label="Next Activity" > </activity> </application> 

每次创build新的活动时,您必须执行第二步,否则您的应用程序将崩溃

当你必须从一个页面到另一个页面在2个文件中进行android更改

 Intent intentSignUP = new Intent(this,SignUpActivity.class); startActivity(intentSignUP); 

在androidManifest文件中添加活动也就像

  <activity android:name=".SignUpActivity"></activity> 

的setContentView(R.layout.avtivity_next);

我认为这行代码应该移动到下一个活动…

 public void onClick(View v) { startActivity(new Intent(getApplicationContext(), Next.class)); } 

这是移动第二个活动的直接方式,不需要打电话

下面的代码与Android 4.3工作正常:

 Intent i = new Intent(this,MainActivity2.class); startActivity(i); 

首先,您必须在Manifest中声明该活动。 这很重要。 你可以像这样添加这个里面的应用程序。

这主要是由于清单文件中的未注册活动为“NextActivity”,首先在Manifest中注册NextActivity

 <activity android:name=".NextActivity"> 

然后在你想要的地方使用代码

 Intent intent=new Intent(MainActivity.this,NextActivity.class); startActivity(intent); 

你必须调用NextActivity ..

在Android清单文件上注册您的Java类

之后,写下这个代码button点击

 startActivity(new intent(MainActivity.this,NextActivity.class)); 

你可以做

 Intent i = new Intent(classname.this , targetclass.class); startActivity(i);