0

皆さんこんにちは。
私はアンドロイドが初めてで、可変量のエンティティ(乗客)の情報を入力するために同じアクティビティを呼び出す必要があるアプリに取り組んでいます。
私は次のものを持っています:

btnContinue3.setOnClickListener(new View.OnClickListener() {

public void onClick(View view) {
    for (int i=0; i<Pssngr; i++){
        passenger[i] = new
            Intent(getApplicationContext(), Pasajeros.class);
            startActivity(passenger[i]);
            }
        }
    });  

Pssngr情報を入力するために固有のアクティビティが必要な乗客または団体の数です。
トリガーはボタンで、アクティビティは配列に従って1つずつ呼び出されます

このコードを試してみましたが、ボタンをクリックするとアプリがクラッシュしました。
誰かがこれを機能させる方法を見つけるのを手伝ってください。
ありがとう

4

2 に答える 2

1

一度に x 個のアクティビティを開始しようとしているため、クラッシュします。このシナリオで乗客ごとに新しいアクティビティを実行する必要がある場合は、startActivityForResultが最適です。

あなたが得ようとしている効果は、ユーザーがボタンを1回クリックするだけで、各乗客のアクティビティが次々と開くということです。

メソッド onClick で行うには 最初のアクティビティのみを開始します。ループは使用しないでください。

その結果、 onActivitiyResultで次のアクティビティを開始します

于 2013-05-23T01:37:57.597 に答える
0

上記の Gustek の言及に加えて、これにアプローチするより良い方法は、1 つのアクティビティを持ち、以下のようにインテントを通じて親 (PassengersAvitivty) アクティビティから異なる値を渡すことです。

    final Intent intent = new Intent(PassengersAcitivty.this, PassengersEntityActivity.class);
    intent.putExtra("PASSENGER_FIRSTNAME", passenger[i].getName());
    intent.putExtra("PASSENGER_LASTNAME", passenger[i].getLastName());
    intent.putExtra("PASSENGER_EMAIL", passenger[i].getEmail());
    startActivity(intent);

アクティビティ (PassengerEntityActivity) でそれらを取得する方法は次のとおりです。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Bundle extras = getIntent().getExtras();
        if (extras != null)
        {
            firstname = extras.getString("PASSENGER_FIRSTNAME");
            lastname = extras.getString("PASSENGER_LASTNAME");
            email = extras.getString("PASSENGER_EMAIL");


        }
        else
        {
            //Log.v("NO VALUE", "OOPS");
        }

必要に応じてさらに明確にすることができます。

于 2013-05-23T03:13:39.863 に答える