2017-04-06 107 views
-2

好的,比方說,我有1個稱爲MainActivity的活動和2個與此活動相關聯的佈局。在佈局1中,我有一個按鈕,點擊後可以在佈局2中打開一個webview。我怎樣才能做到這一點,當我按回退它回到佈局1,並沒有退出整個應用程序。返回上一個佈局的按鈕

編輯:通過創建另一個類並將其鏈接到其中一個佈局來解決此問題。

+0

我認爲更好的選擇是創建兩個活動,並保持你的WebView內第二activity.also一些代碼會大有幫助 – eLemEnt

回答

2

您必須在您的活動中覆蓋onBackPressed()並處理那裏的邏輯。

@Override 
public void onBackPressed(){ 
    if(/*layout2 visible*/){ 
    // code here to go back to layout 1 
    }else{ 
      super.onBackPressed(); 
    } 
} 
+0

@覆蓋 公共無效onBackPressed(){ 如果(R.layout.webview可見) setContentView(R.layout.activity_main); 。 新DOIT()執行();} 其他{super.onBackPressed();} } 我得到錯誤:無法解析符號可見 –

+0

這是一個註釋/舉例來說,你必須提供一個適當的條件 – Zielony

+0

對不起我對編程真的很陌生。我會盡力弄明白,謝謝。 –

0

  • 首先包括你的兩個佈局到您的活動的主要XML
  • 進行佈局1可見和佈局2隱形
  • 當你按下按鈕進行佈局2可見和佈局1隱形
  • 然後,當您按回按鈕,然後檢查佈局2是否可見。如果可見然後使佈局1可見和佈局2隱形

0

我用使用onBackPressed這個代碼()

1- activity_main.xml中

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

<Button 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/go_to_second_layout" 
      android:text="Go to second layout" 
      android:onClick="onClick"/> 

2- second_layout.xml

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/second_layout"> 

3- MainActivity.java

public void onClick(View v){ 
    switch(v.getId){ 
    case R.id.go_to_second_layout:{ 
    setContentView(R.layout.second_layout); 
((LinearLayout)findViewById(R.id.second_layout)).setVisibility(View.VISIBLE); 
            break;}}} 
     @Override 
     public void onBackPressed() { 
      if (((LinearLayout)findViewById(R.id.second_layout)).VISIBLE==View.VISIBLE){ 
setContentView(R.layout.activity_main); 
       ((LinearLayout)findViewById(R.id.second_layout)).setVisibility(View.GONE); 
      } 
      else { 
      super.onBackPressed();} 
     }