0

大家好。
我是 android 新手,我正在开发一个应用程序,我需要在其中调用相同的活动来输入可变数量的实体(乘客)的信息。
我有以下内容:

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是需要独特活动才能输入信息的乘客或实体的数量。
触发器是按钮,然后活动将在数组之后被一一调用

我尝试了这段代码,但点击按钮后应用程序崩溃了。
请有人帮我找到一种方法来完成这项工作。
谢谢

4

2 回答 2

1

它崩溃是因为您试图一次启动 x 个活动。如果您必须在这种情况下最好为每个乘客运行新活动,则startActivityForResult

我相信你想要得到的效果是用户只点击一次按钮,每个乘客的活动就会一个接一个地打开。

在方法 onClick 中执行此操作您将只启动第一个活动,不要使用循环。

您因此在onActivitiyResult中开始下一个活动

于 2013-05-23T01:37:57.597 回答
0

除了上面提到的 Gustek 之外,解决此问题的更好方法是拥有一个活动,并通过以下意图传递来自父 (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 回答