我的逻辑是否正确? - 主视图和输出视图

时间:2012-03-31 12:37:23

标签: android android-activity

我在这里很困惑。

我的程序做了什么:

  • 显示一个视图(布局),允许用户输入一些值(包含TextViews,EdiTexts,单个按钮)
  • 按下按钮时,它会联系服务器并获取数据(HTTP POST - 使用AsyncTask& get result)
  • 现在格式化此数据(来自服务器的结果)并以另一种布局显示(输出布局)
  • 当用户按下后退按钮时,它会返回主页面(布局),以便用户输入新数据并再次从服务器获取输出

我做了什么:

  • 我创建了一个名为“MyApp”的活动
  • 创建了两个布局 - main&输出
  • 为“提交”按钮创建按钮处理程序代码(主要布局)以启动AsyncTask并执行HTTP发布和获取数据
  • 在onPostExecute()中,我编写了代码来显示输出布局(setContentView(R.layout.output);)并在其中创建TextViews和setText来设置文本。

阅读一些文章后,我发现我必须使用单独的活动来显示输出。将数据从我的主活动的获取操作传递到第二个活动(输出活动)并在那里格式化,并编写按钮单击处理程序的代码以返回主活动。 要将数据从主活动发送到输出活动,我应该使用Bundle。正确吗?除此之外还有什么可以照顾的吗?请指导我。

2 个答案:

答案 0 :(得分:0)

在mainActivity中,您设置了一个调用outputActivity的意图。

Intent intent = new Intent();

您可以将EditText字段添加到intent中,如下所示:

intent.putExtra("aNameYouInvent", value);

然后你启动它:

startActivity(intent);

您应该将AsyncTask放在outputActivity中,它将获取您的http数据而不会影响UI响应。 要恢复数据,请执行

value = getIntent().getIntentExtra("aNameYouInvent");

最后,您不需要软件后退按钮,除非您愿意,否则硬件按钮将起作用。

祝你好运

答案 1 :(得分:0)

In onPostExecute() call new activity with your data.

i.e., 
Intent i = new Intent(firstactivity.this,secondactivity.class);
i.putExtra("key","value");
startActivity(i);
 and in the second activity you can read value as below

value = getIntent().getStringExtra("key"); // if in first activity value is string 
value = getIntent().getBooleanExtra("key"); // if in first activity value is boolean 

Try this....