2013-07-08 132 views
8

我想從一個活動移動到另一個活動(使用虛擬設備)。當我點擊按鈕移動時,我的模擬器的對話框顯示unfortunately SMS1 has stopped working(SMS1是我的應用程序名稱)。從一個活動轉到另一個活動Android中的活動

任何人都可以幫我糾正我的代碼嗎?

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> 
+1

已經妳manifest.xml文件 –

+0

定義NextActivity把UR的logcat這裏 –

+0

有一個在您menifest – farrukh

回答

6

您沒有在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> 
3

只需添加您的NextActivityManifest.XML文件

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

thankq :)它解決了我的問題 –

+0

如果您可以接受答案,以便它可以對社區有所幫助。 –

0

的setContentView(R.layout.avtivity_next);

我想,這行代碼應該被移動到下一個活動...

1

1)將setContentView(R.layout.avtivity_next);下一個活動的onCreate()方法就是這樣的(主要)活動的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> 

您必須具有執行第二步每次創建新的活動時間,否則你應用程序將崩潰

+0

歡迎;也許你應該選擇一個最好的答案,如果你有你的問題的解決方案(通過點擊箭頭連同該答案) –

10

首先你必須使用該代碼爲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" /> 

現在看看會發生什麼。

+0

thankq:)............. –

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

} 

它是將第二活動的直接方式,也沒有必要呼叫意圖

0

下面的代碼工作正常,搭載Android 4.3:

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

在活性2 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);    
     } 
    }); 

這可能有助於

0

這主要是由於清單文件作爲「NextActivity」 首先註冊NextActivity在清單一樣

<activity android:name=".NextActivity"> 

然後在你想要

Intent intent=new Intent(MainActivity.this,NextActivity.class); 
startActivity(intent); 
使用的代碼未註冊活動

你必須打電話給NextActivity。

0

首先你必須聲明t他在Manifest中的活動。這很重要。你可以像這樣添加這個內部應用程序。

+0

活動 android:name =「 .NextActivity「> 然後你可以調用Intent i = new Intent(this,MainActivity2.class); startActivity(i); –

0

註冊Android平臺上的Java類清單文件

之後寫上按鈕的代碼單擊

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

當你必須去從一個網頁到另一個網頁中的Android變化在2檔

做在androidManifest文件
Intent intentSignUP = new Intent(this,SignUpActivity.class); 
    startActivity(intentSignUP); 

附加活動也很喜歡

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

你可以做

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

請您詳細說明*如何*和*爲什麼*這解決了OP的問題? –

相關問題