2

私は Android 開発に不慣れで、あるページから別のページに移動する方法について質問があります。実際、私がやりたいことは次のとおりです。アプリを開くと、最初のページが表示され、「こんにちは、アクティビティ 1 です」と表示されます。次に、「次へ」というボタンが表示されます。[次へ] を押すと、次のページに移動します。 "Hello I am activity 2". このページには 2 つのボタンがあります。最初に「前へ」と表示され、ページ 1 に戻ります。次に、「次へ」と表示されてページ 3 に移動します。ページ 1 と 2 は、次のボタンと前のボタンの両方で正常に動作しますが、ページ 2 から「次へ」ボタンを押しても 3 ページ目に移動できません。ソース コードをここにアップロードしたので、ダウンロードしてインポートできます。私がやったことを正確に見るためにEclipse。

ここをクリックてダウンロードしてください。

誰かが仲間を助けることができればうれしいです、よろしくお願いします。

OK、コードをここに示します。マニフェストにも登録した 3 つのアクティビティを作成し、これら 3 つのアクティビティ用に 3 つのレイアウトも作成しました。

アクティビティ 1

import android.app.Activity;<br>
import android.content.Intent;<br>
import android.os.Bundle;<br>
import android.view.View;<br>
import android.widget.Button;<br>

public class Activity1 extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
         setContentView(R.layout.main);

        Button next = (Button) findViewById(R.id.Button01);
        next.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent myIntent = new Intent(view.getContext(), Activity2.class);
                startActivityForResult(myIntent, 0);
            }

        });
    }
}

アクティビティ2

import android.app.Activity;<br>
import android.content.Intent;<br>
import android.os.Bundle;<br>
import android.view.View;<br>
import android.widget.Button;<br>

public class Activity2 extends Activity {

    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main2);

        Button next = (Button) findViewById(R.id.Button02);
        next.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent intent = new Intent();
                setResult(RESULT_OK, intent);
                finish();
            }

        });
    }


public void onCreate1(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
     setContentView(R.layout.main2);

    Button next = (Button) findViewById(R.id.Button04);
    next.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            Intent myIntent1 = new Intent(view.getContext(), Activity3.class);
            startActivityForResult(myIntent1, 0);
        }

    });
}
}

アクティビティ3

import android.app.Activity;<br>
import android.content.Intent;<br>
import android.os.Bundle;<br>
import android.view.View;<br>
import android.widget.Button;<br>

public class Activity3 extends Activity {

    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main3);

        Button next = (Button) findViewById(R.id.Button04);
        next.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent intent = new Intent();
                setResult(RESULT_OK, intent);
                finish();
            }

        });
    }
}

main.xml

  <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#000000"
    android:text="This is Activity 1" />

       <Button android:text="Next"
        android:id="@+id/Button01"
        android:layout_width="250px"
            android:textSize="18px"
        android:layout_height="55px">
    </Button>    

</LinearLayout>

main2.xml

    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#000000"
    android:text="This is Activity 2" />

       <Button android:text="Previous"
        android:id="@+id/Button02"
        android:layout_width="250px"
            android:textSize="18px"
        android:layout_height="55px">
    </Button>



       <Button
           android:layout_width="162dp"
           android:layout_height="34dp"
           android:text="Next"
           android:id="@+id/Button04"
           android:textSize="18px" />

</LinearLayout>

main3.xml

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:text="This is Activity 3" />

マニフェストにも活動を登録しました。

4

4 に答える 4

2

ステップ #1: Activity1 のstartActivityForResult()置換startActivity()

ステップ #2: Activity2 から現在のコードを削除し、 Activity3を開始onClick()するための呼び出しに置き換えます。startActivity()

ステップ #3: 存在しないウィジェット (Button04) を参照しているため、Activity3 がコンパイルされないか実行時にクラッシュするため、Activity3 を完全に書き直します。

于 2012-04-05T22:35:14.737 に答える
1

手遅れではないかどうかはわかりませんが、それでも明確な答えが必要な場合は、次のようにします。

する必要がありstart activitiesます。がありますがisn'tDIRECT page navigation code代わりに がありstart Activityます。starting an activityページがアクティビティに関連しているため、別のページに移動できます。

Intent myIntent = new Intent(Enter_Your_Current_Activity.this, Enter_The_Activity_You_Want_To_Navigate_To.class);
startActivity(myIntent);

お役に立てれば!

ps コードで使用するもの。

于 2014-06-22T00:56:54.717 に答える
0
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Activity1 extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
         setContentView(R.layout.main);

        Button next = (Button) findViewById(R.id.Button01);
        next.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent myIntent = new Intent(view.getContext(), Activity2.class);
                startActivityForResult(myIntent, 0);
            }

        });
    }
}
于 2013-02-19T08:38:27.683 に答える