2013-07-08 69 views
8

Tôi muốn chuyển từ hoạt động này sang hoạt động khác (sử dụng thiết bị ảo). Khi tôi bấm vào nút để di chuyển, giả lập của tôi những người một hộp thoại hiển thị unfortunately SMS1 has stopped working (SMS1 là tên ứng dụng của tôi).Di chuyển từ một hoạt động này sang Hoạt động khác trong Android

Ai đó có thể giúp tôi sửa mã của tôi không?

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



} 

Đây là 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 Layout

<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

đã u xác định NextActivity trong tập tin manifest.xml bạn –

+0

đặt ur logcat đây –

+0

không có hoạt động thứ hai trong – farrukh

Trả lời

6

Bạn chưa xác định NextActivity trong file AndroidManifest.xml.

Thêm các dòng này trong tệp kê khai Android sau thẻ </activity>. Nó sẽ hoạt động.

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

mã cuối cùng sẽ

<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

Chỉ cần thêm bạn NextActivity trong Manifest.XML tập tin

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

thankq :) nó giải quyết được vấn đề của tôi –

+0

Nếu bạn có thể chấp nhận câu trả lời để nó có thể hữu ích cho cộng đồng. –

0

setContentView (R.layout.avtivity_next);

Tôi nghĩ rằng dòng mã này nên được chuyển sang hoạt động tiếp theo ...

1

1) đặt setContentView(R.layout.avtivity_next); phương pháp giống như onCreate này (chính) hoạt động của() onCreate các thế hệ tiếp theo hoạt động của()

2) nếu bạn chưa xác định các thế hệ tiếp theo hoạt động trong bạn-apps file manifest sau đó làm điều này cũng có, như:

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

bạn phải có để thực hiện các bước 2 mỗi khi bạn tạo một hoạt động mới, nếu không bạn ứng dụng sẽ gặp sự cố

+0

chào mừng; có lẽ bạn nên chọn câu trả lời hay nhất nếu bạn có giải pháp cho vấn đề của mình (bằng cách nhấp vào mũi tên cùng với câu trả lời đó) –

10

Đầu tiên Bạn cần phải sử dụng mã này vào MainActivity.java

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

} 

Bạn có thể vượt qua ý định theo cách này.

Second

thêm mục thích hợp vào manifest.xml tập tin.

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

Bây giờ hãy xem điều gì xảy ra.

+0

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

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

} 

nó là cách trực tiếp để di chuyển hoạt động thứ hai và không có nhu cầu cho mục đích cuộc gọi

0

Dưới đây đang làm việc tốt với Android 4.3:

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

button1 trong activity2

mã được viết trong hoạt động 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);    
     } 
    }); 

này có thể giúp

0

Nó chủ yếu là do hoạt động không đăng ký trong file manifest là "NextActivity" Đầu tiên đăng ký NextActivity trong Manifest như

<activity android:name=".NextActivity"> 

sau đó sử dụng mã kiểm tra vào nơi bạn muốn

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

nơi bạn phải gọi NextActivity ..

0

Trước tiên, bạn phải khai báo t anh ta hoạt động trong Manifest. Nó quan trọng. Bạn có thể thêm vào bên trong ứng dụng như thế này.

+0

hoạt động android: name = " .NextActivity "> Sau đó, bạn có thể gọi Intent i = new Intent (this, MainActivity2.class); startActivity (i); –

0

đăng ký lớp học java của bạn trên Android Manifest nộp

Sau đó viết mã này trên nút bấm

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

Khi bạn phải đi từ trang này sang trang khác trong những thay đổi android thực hiện trong 2 file

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

add trong file androidManifest hoạt động cũng như

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

Bạn có thể làm

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

Bạn có thể vui lòng xây dựng * cách * và * tại sao * điều này giải quyết câu hỏi OP không? –

Các vấn đề liên quan