0

我正在尝试为 android 制作一个包含多个选项的应用程序,每个选项都取决于前一个选项。

首先,显示一个包含一些选项的列表,在选择一个之后,我向网络服务器数据库发送请愿书并发送回新选项并使用新选项创建一个新活动,依此类推,直到最后一个选项列表。

我使用 asynctask 发送请求并使用 putExtra 在活动之间发送信息。

问题是我不喜欢这种方法。Too many activities and cycling through them is a pain, and when the last option is chosen, I would like to go back to the main screen but I have a bunch of activities to handle first and I dunno how to do it.

我对如何解决这个问题有任何想法吗?是否可以重复使用相同的活动?由于数据库查询不同,每个选项的打包方式也不同。

欢迎任何帮助:)

4

1 回答 1

0

从您的 FirstActivity 调用 SecondActivity 使用 startActivityForResult() 方法

例如:

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);

在您的 SecondActivity 中设置要返回给 FirstActivity 的数据,如果您不想返回,请不要设置任何数据。

例如:在 secondActivity 如果你想发回数据:

 Intent returnIntent = new Intent();
 returnIntent.putExtra("result",result);
 setResult(RESULT_OK,returnIntent);     
 finish();

如果您不想返回数据:

Intent returnIntent = new Intent();
setResult(RESULT_CANCELED, returnIntent);        
finish();

现在在您的 FirstActivity 类中为 onActivityResult() 方法编写以下代码

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

  if (requestCode == 1) {

     if(resultCode == RESULT_OK){      
         String result=data.getStringExtra("result");          
     }
     if (resultCode == RESULT_CANCELED) {    
         //Write your code if there's no result
     }
  }
}//onActivityResult

通过调用 finish() 来销毁一个活动;在上面。它通过 onDestroy(); 或者通过将 good 标志添加到 StartActivity() 中使用的意图;

于 2013-06-25T13:19:04.147 回答