我遇到從詳細信息頁返回給其父母的問題。問題在於它有三個層次,問題是從第三層回到第二層。 想象一下發票列表。點擊它們中的一個,並將發票的細節與發票中的訂單項列表一起加載。點按訂單項,然後轉到與該訂單項的詳細信息相關的第三個活動。該生產線項目通過像這樣自來水響應啓動...Android主詳細信息詳細信息
[編輯補充清單信息]
<activity
android:name=".InvocieListActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
</activity>
<activity
android:name=".InvoiceDetailActivity"
android:label="@string/title_activity_invoice_detail"
android:parentActivityName=".InvoiceListActivity"
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.myweb.ree.InvocieListActivity"/>
</activity>
<activity
android:name=".InvoiceItemDetailActivity"
android:label="@string/title_activity_invoiceitem_detail"
android:parentActivityName=".InvoiceDetailActivity"
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.myweb.ree.InvoiceDetailActivity"/>
</activity>
private BroadcastReceiver invoiceItemReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION_INVOICEITEM_TAPPED)) {
String invoiceItemId = intent.getStringExtra(Constants.MSG_DATA);
if (invoiceItemId != null && invoiceItemId.length() > 0) {
launchInvoiceItemActivity(invoiceItemId);
}
}
}
};
private void launchInvoiceItemActivity(String invoiceItemId) {
Intent intent = new Intent(this, InvoiceItemDetailActivity.class);
intent.putExtra(ARG_InvoiceItem_ID, invoiceItemId);
this.startActivity(intent);
}
發票細節有getSupportActionBar().setDisplayHomeAsUpEnabled(true);
,以便它可以返回到發票的列表。訂單項詳細信息頁面具有相同的行,以允許後退按鈕轉到發票。
當我點擊訂單項明細活動的後退按鈕時,它無法加載發票,因爲它沒有從原始列表中傳入的發票號。
我知道我可以重寫onBackPressed並創建一個啓動它的父項而不是讓框架執行它的意圖。我的問題是,這會混淆框架在父子導航的情況下保留的任何內部視圖堆棧嗎?有沒有其他方法可以跟蹤主視圖中的項目,以便在從詳細視圖返回時可以重新載入正確的內容?
TIA 邁克
謝謝。奇蹟般有效 :) – Mikey