ActionBar详解(六)--->利用ActionBar结合Fragment实现下拉式导航
发布日期:2021-06-30 11:13:48
浏览次数:2
分类:技术文章
本文共 3065 字,大约阅读时间需要 10 分钟。
MainActivity如下:
package cc.testsimpleactionbar5;import android.os.Bundle;import android.widget.ArrayAdapter;import android.app.ActionBar;import android.app.ActionBar.OnNavigationListener;import android.app.Activity;import android.app.FragmentTransaction;/** * Demo描述: * 利用ActionBar结合Fragment实现下拉式导航. * 且根据不同的导航利用Fragment显示不同的内容 * * 备注说明: * 该示例和TestSimpleActionBar4示例的布局文件一致. * 代码实现也类似,只是导航方式不同罢了 * * 参考资料: * 1 Android疯狂讲义(第二版) * Thank you very much * */public class MainActivity extends Activity { private ActionBar mActionBar; private final static String SELECTED_PAGE_INDEX="selected_page"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initActionBar(); } private void initActionBar(){ mActionBar=getActionBar(); //设置是否显示ActionBar的标题 mActionBar.setDisplayShowTitleEnabled(true); //设置导航方式为LIST mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); ArrayAdapterTestFragment如下:arrayAdapter=new ArrayAdapter ( MainActivity.this, android.R.layout.simple_list_item_1, android.R.id.text1, new String[]{"第一页","第二页","第三页" }); //为ActionBar设置ArrayAdapter和导航监听 mActionBar.setListNavigationCallbacks(arrayAdapter,new NavigationListenerImpl()); } private class NavigationListenerImpl implements OnNavigationListener{ @Override public boolean onNavigationItemSelected(int position, long id) { System.out.println(" onNavigationItemSelected "); TestFragment testFragment=new TestFragment(); Bundle bundle=new Bundle(); bundle.putString(TestFragment.KEY, "这是第"+(position+1)+"页"); testFragment.setArguments(bundle); FragmentTransaction fragmentTransaction=getFragmentManager().beginTransaction(); fragmentTransaction.replace(R.id.relativeLayoutContainer, testFragment); fragmentTransaction.commit(); return false; } } // 以下处理横竖屏的切换 // 将当前选中页的索引保存到Bundle中 @Override protected void onSaveInstanceState(Bundle bundle) { super.onSaveInstanceState(bundle); bundle.putInt(SELECTED_PAGE_INDEX,mActionBar.getSelectedNavigationIndex()); } // 获取已经保存的被选中页的索引,且设置ActionBar. // setSelectedNavigationItem()方法会调用onNavigationItemSelected() @Override protected void onRestoreInstanceState(Bundle bundle) { super.onRestoreInstanceState(bundle); mActionBar.setSelectedNavigationItem(bundle.getInt(SELECTED_PAGE_INDEX)); } }
package cc.testsimpleactionbar5;import android.app.Fragment;import android.os.Bundle;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;public class TestFragment extends Fragment { public static final String KEY="key"; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { TextView textView=new TextView(getActivity()); textView.setGravity(Gravity.CENTER); Bundle bundle=this.getArguments(); String content=bundle.getString(KEY); textView.setText(content); textView.setTextSize(30); return textView; }}main.mxl如下:
转载地址:https://it9527.blog.csdn.net/article/details/12526527 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月06日 21时13分25秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
HDU-2586 How far away ?(LCA)
2019-04-30
hihocoder #1069 : 最近公共祖先·三(ST求LCA)
2019-04-30
hackerrank Lucky Numbers(扩展gcd/规律)
2019-04-30
HDU 5115 Dire Wolf(区间dp)
2019-04-30
Wannafly挑战赛1 A.Treepath(dfs)
2019-04-30
leetcode 10. Regular Expression Matching(dp)
2019-04-30
Recall, Precision, and Average Precision
2019-04-30
Vue 项目部署到阿里云服务器(Nginx 代理)
2019-04-30
CMake 学习
2019-04-30
《Effective STL》 读书笔记
2019-04-30
Windows10 使用 Visual Studio Code
2019-04-30
实习经历总结
2019-04-30
基于java的网络考试系统的设计与实现
2019-04-30
基于java的魂斗罗的设计
2019-04-30
基于java的网页内容管理
2019-04-30
基于JSP心悦图书城系统设计与实现
2019-04-30
基于Spring+SpringMVC+hibernate实现的体检中心管理系统
2019-04-30
基于SSM的网上购物系统的设计与开发
2019-04-30
基于SSM的网上购物系统的设计与开发
2019-04-30
基于SSM框架的BS微博系统的设计与实现
2019-04-30