web-dev-qa-db-ja.com

Androidで1つのアクティビティから別のアクティビティに移動する

あるアクティビティから別のアクティビティに移動したい(仮想デバイスを使用)。移動するボタンをクリックすると、エミュレータは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 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>
9
Jyotika Pandey

AndroidManifest.xmlファイルにNextActivityを定義していません。

これらの行をAndroid manifest after</activity>タグに追加します。動作するはずです。

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

最初このコードはMainActivity.Javaクラスで使用する必要があります

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

}

この方法でインテントを渡すことができます。

2番目

manifest.xmlファイルに適切なエントリを追加します。

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

どうなるか見てみましょう。

18
Harshid

Manifest.XMLファイルにNextActivityを追加するだけです

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

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

これは役立つかもしれません

3
patel sagar

1)この(メイン)アクティビティのonCreate()のように、次のアクティビティのonCreate()メソッドにsetContentView(R.layout.avtivity_next);を配置する

2)your-appsマニフェストファイルでnext-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"
            Android:label="Next Activity" >
        </activity>
    </application>

新しいアクティビティを作成するたびに2番目のステップを実行する必要があります。そうしないと、アプリがクラッシュします

1
Husnain Iqbal

Android 2つのファイルで行われた変更で1つのページから別のページに移動する必要がある場合

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

以下のようなandroidManifestファイルにアクティビティを追加します

 <activity Android:name=".SignUpActivity"></activity>
1
Ashu

以下のコードは、Android 4.3:

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

これは主に、マニフェストファイルに「NextActivity」として未登録のアクティビティがあるためです。

<activity Android:name=".NextActivity">

必要な場所でコードを使用します

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

nextActivityを呼び出す必要があります。

0
Nilesh Panchal

JavaクラスのAndroidマニフェストファイルを登録する

その後、ボタンをクリックしてこのコードを記述します

startActivity(new intent(MainActivity.this,NextActivity.class));
0
@Override
public void onClick(View v)
{
    // TODO Auto-generated method stub
    Intent intent = new Intent(Activity1.this,Activity2.class);
    startActivity(intent);

}
0

まず、マニフェストでアクティビティを宣言する必要があります。大事です。このようにアプリケーション内にこれを追加できます。

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

}

2番目のアクティビティを直接移動する方法であり、呼び出しの意図は必要ありません

0
kishore

setContentView(R.layout.avtivity_next);

このコード行は次のアクティビティに移動する必要があると思います...

0
SoulMagnet