第二个setcontentview布局上的后退按钮

时间:2012-02-13 20:44:47

标签: java android android-layout

在我的课上,我正在使用setcontentview(R.layout.main2),其中在按下按钮后类上的一个点之后调用第二个布局main3。我不知道,如何在第二个布局上使用后退按钮以便在main2上移回。我尝试使用finish();,但它更多地回到布局main1上。此外,我尝试再次调用布局main2,但然后我的按钮不起作用。 如何做到这一点?

修改

public class Conn extends Activity 

 public void onCreate(Bundle mSavedInstanceState) 
    {
        super.onCreate(mSavedInstanceState);
        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        setContentView(R.layout.main2);
}

findViewById(R.id.Devices).setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {

        setContentView(R.layout.devices);

        if (DeviceName==(null))
        {
            DeviceName="Not Connected";
        }
        final TextView BDConnected = (TextView) findViewById(R.id.BDConnected);
          BDConnected.setText("BD Device Connected :"+DeviceName);

          WifiManager wifiManager=(WifiManager) getSystemService(Context.WIFI_SERVICE);
        String net=wifiManager.getConnectionInfo().getSSID();
        //wifiManager.getConnectionInfo().getSSID();
          final TextView WiFiConnected = (TextView) findViewById(R.id.WiFiConnected);
          WiFiConnected.setText("WiFi NetWork Connected :"+net);
}}):
}
在oncreate上

调用我的主布局(main2)。当从主布局按下按钮设备时,它会在第二个布局(设备)上转发我。从那时起我如何回到布局main2?

EDIT2

我使用viewswitches并将两个布局合并为一个,并使用switch.previous和next

3 个答案:

答案 0 :(得分:1)

首先,你应该知道在Android中,这个想法并不是真的要保持一个Activity并在按键上使用setContentView在不同的视图之间跳转。一般情况下(也就是说,有一些例外情况,但通常),您应该为每个要显示用户列表屏幕,详细屏幕等的屏幕设置不同的活动。然后每当用户想要返回上一个屏幕,他们点击后退按钮,当前活动从堆栈中弹出,并显示前一个。

真正阅读所有这些的好资源将是Android开发人员参考的活动页面,located here.与您特别相关的是“活动生命周期”和“开始活动”和获得结果“部分。

答案 1 :(得分:0)

你可以像这样写处理后退按钮

@Override
public void onBackPressed() {
    Intent backPressedIntent = new Intent();
    backPressedIntent .setClass(getApplicationContext(), main2.class);
    startActivity(backPressedIntent );
    finish();
}

答案 2 :(得分:0)

未来的googlers的迟到回复。

创建一个名为" secondViewOpened"的布尔值默认值" false"。然后将其更改为true:

setContentView(R.layout.secondview);
secondViewOpened=true;

像这样使用你的onBackPressed:

@Override
public void onBackPressed() {
    if (secondViewOpened)
    ...
    else 
    ...
}

关闭此视图时,不要忘记再次将值更改为false。