应用程序工作流方案
FrameLayout
容器中。设置了操作栏,包括实施onCreateOptionsMenu()
。Intent
启动新活动。新活动使用RecyclerView
小部件设置自己的布局文件。
未设置操作栏(仅使用清单文件向父活动提供后退导航,即Main Activity
。 CardView
小部件容器中的RecyclerView
项时,Main Activity
的第二个片段会替换当前
使用RecyclerView
小部件的活动。FrameLayout
容器由片段使用
将会效仿。在从其他活动回来时,我需要帮助确定如何确保主要活动的操作栏功能(包括在onCreateOptionsMenu()
的{{1}}内调用的辅助方法)?
提前感谢您提供任何有价值的帮助。
编辑:
MainActivity布局文件:
MainActivity
主要活动将第一个片段添加到其<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
</RelativeLayout>
容器中:
FrameLayout
MainActivity的 BaseFragment firstFragment = new BaseFragment();
// Add the fragment to the 'fragment_container' FrameLayout
getSupportFragmentManager().beginTransaction()
.add(R.id.container, firstFragment)
.addToBackStack(null)
.commit();
:
onCreateOptionsMenu()
使用public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present
getMenuInflater().inflate(R.menu.menu_main, menu);
// Add the shopping cart menu item onto action bar.
MenuItem cartItem = menu.findItem(R.id.ab_cartView);
// Add the search view menu item onto action bar and hide it until ProductListFragment
MenuItem search = menu.findItem(R.id.search);
search.setVisible(false);
// Check whether the DB table has entries - if true, then display the shopping cart icon.
if (db.getActiveItemsCount() > 0)
cartItem.setVisible(true);
else
cartItem.setVisible(false);
MenuItemCompat.setActionView(cartItem, R.layout.action_bar_notification_icon);
ab_cartView = MenuItemCompat.getActionView(cartItem);
ab_cartView_notification = (TextView) ab_cartView.findViewById(R.id.ab_cartView_items_notification);
// Update list items count label of ab_cartView_notification
updateListItemsCount();
}
Intent
开始新活动
firstFragment
新活动(Intent displayListSelectionIntent = new
Intent(getActivity().getApplicationContext(), ListSelectionActivity.class);
// Add data about current status to the intent
displayListSelectionIntent.putExtra("ListStatus_Active", true);
startActivity(displayListSelectionIntent);
)布局文件:
ListSelectionActivity
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#e2e6fb" >
<android.support.v7.widget.RecyclerView
android:id="@+id/cardList"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
的侦听器接口以及用主要活动的第二个片段替换ListSelectionAdapter
的方法:
ListSelectionActivity
// Instantiate click listener interface for the ListSelectionAdapter
ListSelectionAdapter.OnItemClickListener onItemClickListener = new ListSelectionAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
replaceFragment (new CategoryFragment());
}
};
:
replaceFragment()