滚动最后一个屏幕后如何获取上一个活动

时间:2014-04-07 05:55:18

标签: android

如何在滚动最后一个屏幕之后获取上一个活动。在下面的代码中我做了,因为我写的最后一个屏幕意图调用它正在调用的前一个活动,但它刷新了所有数据并调用其中的所有字段为null和调用我想调用之前调用它是如何只有那样。当我按下底部的backpress它是好的它获得前一个活动,但当我调用活动它获得空值。

                protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    setContentView(R.layout.learnmore);

    realViewSwitcher=(com.RealViewSwitcher)findViewById(R.id.realviewswitcher);

    mainlayout=(RelativeLayout)findViewById(R.id.mainlayout);
    final int[] backgrounds = { R.drawable.braven_1_bankpercentage,R.drawable.braven_2_outputs,
            R.drawable.braven_3_findme,R.drawable.braven_4_sos,R.drawable.braven_5_bearmode};
    for (int i = 0; i < 6; i++) {
        TextView textView = new TextView(getApplicationContext());
        textView.setGravity(Gravity.CENTER);
        try{
        textView.setBackgroundResource(backgrounds[i]);
        }

        catch(Exception e){
            e.printStackTrace();
        }


        realViewSwitcher.addView(textView);
    }

    realViewSwitcher.setOnScreenSwitchListener(onScreenSwitchListener);

}



private final RealViewSwitcher.OnScreenSwitchListener onScreenSwitchListener = new RealViewSwitcher.OnScreenSwitchListener() {

    @Override
    public void onScreenSwitched(int screen) {
        if(screen==5)
        {
            Intent intent=new Intent(LearnMore.this,DeviceControlActivity.class);
            startActivityForResult(intent, 0);
        }
        Log.d("RealViewSwitcher", "switched to screen: " + screen);
    }

};

1 个答案:

答案 0 :(得分:1)

您正在使用startActivityForResult重新开始上线活动,这就是为什么您要为prev活动刷新数据的原因,因此您应该在此活动上致电Activity.finish(),而不是再次调用它,以便它会打开您的与旧数据的上一次活动。

当您开始当前活动时,您的上一个活动将被添加到堆叠中,因此当您在当前活动上调用完成时,操作系统将终止此活动&amp;从堆栈中弹出prev活动并保留其视图。但是在这里,当你打电话给startActivityForResult时,它将重新开始活动并将当前活动推送到堆栈

简单地替换

      Intent intent=new Intent(LearnMore.this,DeviceControlActivity.class);
      startActivityForResult(intent, 0);

finish()