2013-05-01 44 views
0

在此應用程序中,只有在計算/執行onClick操作後,您才能獲得另一個按鈕,以將用戶引導至其他活動。管理頁面之間的內容

假設例如我有兩個活動,Activity_A和Activity_B。在Activity_A中放置查詢後,我可以選擇去Activity_B。在Activity_B中,我正在使用Android的導航功能,在回到我的Activity_A時遇到問題。在我去Activity_B之前放置在Activity_A中的查詢沒有顯示,而是將Activity_A作爲新的Activity啓動。

,我使用的代碼是:

這裏參考Activity_B我使用一個onClick監聽器:

view_directions.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent intent = new Intent(MainActivity.this,DirectionsView.class); 
      Bundle extras = new Bundle(); 
      extras.putString("LOCATION", location.getText().toString()); 
      extras.putString("DESTINATION", destination.getText().toString()); 
      intent.putExtras(extras); 
      intent.addFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP); 
      startActivity(intent); 

     } 
    }); 

我還沒有嘗試這種去除addFlags的事情。

在Activity_B

public boolean onOptionsItemSelected(MenuItem item){ 
     switch(item.getItemId()) 
     { 
     case android.R.id.home: 
      Intent intent = new Intent(this, MainActivity.class); 
      startActivity(intent); 
      break; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

我也嘗試使用這裏的addFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP)但,我要找的是沒有實現的結果。

簡單地說,當我從Activity_B引用Activity_A時,Activity_A應該保留之前生成的查詢。

該應用程序的清單文件:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.calculator_taxi_fare" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="17" /> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

    <application 
     android:allowBackup="true" 
     android:label="@string/app_name" 
     android:theme="@style/Theme.Sherlock.Light"> 
     <activity 
      android:name="com.example.calculator_taxi_fare.MainActivity" 
      android:configChanges="keyboardHidden|orientation" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.example.calculator_taxi_fare.functions.Preferences" 
      android:label="@string/app_name" 
      android:configChanges="keyboardHidden|orientation" > 
      <intent-filter> 
       <action android:name="android.intent.action.PREF" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name=".DirectionsView" 
      android:label="@string/app_name" 
      android:configChanges="keyboardHidden|orientation" > 
      <intent-filter> 
       <action android:name="com.example.calculator_taxi_fare.DIRECTIONS" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 

    </application> 

</manifest> 
+0

可以粘貼你的清單文件? – 2013-05-01 11:17:31

+0

@AmitHooda檢查出來喲! – 2013-05-01 11:23:01

+0

你可以嘗試我建議的簡單的溶解 – 2013-05-01 12:35:30

回答

2

你可以試試這個:

public boolean onOptionsItemSelected(MenuItem item) 
{ 
    switch(item.getItemId()) 
    { 
     case android.R.id.home: 
       finish(); 
       break; 
    } 
    return super.onOptionsItemSelected(item); 
}  

這將返回到activity_A和新activity_A不會推出,但你回到老一。

+0

非常簡單地把人...我現在感覺像一個愚蠢的...感謝的人,真的幫助了我。 – 2013-05-01 11:37:13

1

有清單文件更簡單的解決方案 集noHistory =在活動定義

<activity 
       android:name="com.bla.bla.A_Activity" 
       android:label="@string/app_name" 
       **android:noHistory="true"** 
       android:theme="@style/AppThemeNoTitleBar" > 
</activity> 

這將刪除A_Activity自動從活動堆棧真

相關問題