actionBar_Tab导航

actionBar配合碎片使用  初始化actionBar要注意设置actionbar的导航模式

  1 package com.qf.actionbar04_tab;
  2
  3 import java.io.File;
  4 import java.io.UnsupportedEncodingException;
  5 import java.net.URLEncoder;
  6
  7 import android.app.ActionBar;
  8 import android.app.ActionBar.Tab;
  9 import android.app.ActionBar.TabListener;
 10 import android.app.Activity;
 11 import android.app.FragmentTransaction;
 12 import android.content.Intent;
 13 import android.net.Uri;
 14 import android.os.Bundle;
 15 import android.util.Log;
 16 import android.view.Menu;
 17 import android.view.MenuItem;
 18
 19 /**
 20  * 使用ActionBar的Tab导航
 21  * 1)设置ActionBar的导航的模式为TABS
 22  * 2)当前Activity实现ActionBar.TabListener接口(Tab的选择与取消选择等事件)
 23  * 3)通过ActionBar类对象的newTab() 创建Tab选项卡,同时设置显示的标题和事件监听
 24  * 4)通过ActionBAr类对象的addTab()方法,将创建的Tab增加到ActionBar中
 25  * 5)在Tab选择事件方法中,动态地显示Fragment
 26  *
 27  * @author apple
 28  *
 29  */
 30 public class MainActivity extends Activity implements TabListener{
 31
 32     private ActionBar actionBar;
 33     @Override
 34     protected void onCreate(Bundle savedInstanceState) {
 35         super.onCreate(savedInstanceState);
 36         setContentView(R.layout.activity_main);
 37
 38         initActionBar();
 39     }
 40
 41     private void initActionBar() {
 42         // TODO 初始化ActionBar中的相关设置
 43         actionBar=getActionBar();//获取ActionBar对象
 44
 45         //1. 设置ActionBar的导航模式: tab选项卡的导航模式
 46         actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
 47
 48         //3. 创建Tab
 49         Tab tab1=actionBar.newTab()
 50                          .setText("头条")
 51                          .setIcon(android.R.drawable.ic_menu_add)
 52                          .setTabListener(this);
 53
 54         Tab tab2=actionBar.newTab()
 55                  .setText("军事")
 56                  .setIcon(android.R.drawable.ic_menu_agenda)
 57                  .setTabListener(this);
 58
 59         Tab tab3=actionBar.newTab()
 60                  .setText("国内")
 61                  .setIcon(android.R.drawable.ic_menu_delete)
 62                  .setTabListener(this);
 63
 64         Tab tab4=actionBar.newTab()
 65                  .setText("国际")
 66                  .setIcon(android.R.drawable.ic_menu_camera)
 67                  .setTabListener(this);
 68
 69         Tab tab5=actionBar.newTab()
 70                  .setText("体育")
 71                  .setIcon(android.R.drawable.ic_menu_compass)
 72                  .setTabListener(this);
 73
 74         //4. 增加Tab到ActionBar中
 75         actionBar.addTab(tab1);
 76         actionBar.addTab(tab2);
 77         actionBar.addTab(tab3);
 78         actionBar.addTab(tab4);
 79         actionBar.addTab(tab5);
 80     }
 81
 82     @Override
 83     public void onTabSelected(Tab tab, FragmentTransaction ft) {
 84         // TODO 选择Tab事件
 85         Log.i("info", "onTabSelected-----"+tab.getPosition());
 86
 87         ContentFragment cf=
 88                 ContentFragment.newInstace(tab.getText().toString());
 89
 90         ft.replace(R.id.mainLayoutId, cf);
 91
 92     }
 93
 94     @Override
 95     public void onTabUnselected(Tab tab, FragmentTransaction ft) {
 96         // TODO 取消选择Tab事件
 97         Log.i("info", "onTabUnselected-----"+tab.getPosition());
 98     }
 99
100     @Override
101     public void onTabReselected(Tab tab, FragmentTransaction ft) {
102         // TODO 重新选择Tab事件
103         Log.i("info", "onTabReselected-----"+tab.getPosition());
104
105     }
106
107     @Override
108     public boolean onCreateOptionsMenu(Menu menu) {
109         getMenuInflater().inflate(R.menu.main, menu);
110         return super.onCreateOptionsMenu(menu);
111     }
112
113     @Override
114     public boolean onOptionsItemSelected(MenuItem item) {
115         if(item.getItemId()==R.id.action_share){
116
117             try {
118                 String info="给您推荐一本新的学习资料:http://www.baidu.com/"
119                         +URLEncoder.encode("Android5.0大全","utf-8");
120                 //说明:使用URLEncoder工具类,将url请求中包含中文的信息转化unicode编码
121
122                 Intent intent=new Intent(Intent.ACTION_SEND);
123                 intent.setType("text/*"); //设置分享的内容类型为文本类型
124 //                File imgFile=null;
125 //                intent.setDataAndType(Uri.parse(imgFile.getAbsolutePath()), "image/*");
126                 intent.putExtra(Intent.EXTRA_TEXT, info);//设置分享的内容
127
128                 startActivity(intent);//开始分享
129
130             } catch (UnsupportedEncodingException e) {
131                 e.printStackTrace();
132             }
133
134
135         }
136         return super.onOptionsItemSelected(item);
137     }
138
139 }

mainactivity

 1 import android.app.ListFragment;
 2 import android.os.Bundle;
 3 import android.view.View;
 4 import android.widget.ArrayAdapter;
 5 import android.widget.ListView;
 6
 7 public class ContentFragment extends ListFragment {
 8
 9     private String title; //传入当前Fragment中的参数
10
11     private ArrayAdapter<String> adapter;
12
13     //声明静态工厂方法
14     public static ContentFragment newInstace(String title){
15
16         ContentFragment cf=new ContentFragment();
17         Bundle args=new Bundle();
18         args.putString("title",title);
19
20         cf.setArguments(args);//设置要传入Fragment中的参数
21
22         return cf;
23     }
24
25     @Override
26     public void onCreate(Bundle savedInstanceState) {
27         super.onCreate(savedInstanceState);
28
29         //获取传入的参数
30         title=getArguments().getString("title");
31
32         adapter=new ArrayAdapter<String>(getActivity().getApplicationContext(),
33                     R.layout.item_content);
34
35         //初始化数据源
36         for(int i=0;i<20;i++)
37             adapter.add(title+"--"+i);
38
39     }
40
41     @Override
42     public void onActivityCreated(Bundle savedInstanceState) {
43         // TODO 归属的Activity的onCreate()初始化方法执行完成
44         super.onActivityCreated(savedInstanceState);
45
46         //设置当前Fragment中ListView控件的适配器
47         setListAdapter(adapter);
48     }
49
50     @Override
51     public void onListItemClick(ListView l, View v, int position, long id) {
52         // TODO ListView中的Item点击事件方法
53         //设置当前归属Activity的标题为点击item的内容
54
55         getActivity().setTitle(adapter.getItem(position));
56     }
57
58 }

ConmtentFragment

时间: 2024-08-19 10:25:14

actionBar_Tab导航的相关文章

Android 导航条效果实现(六) TabLayout+ViewPager+Fragment

TabLayout 一.继承结构 public class TabLayout extends HorizontalScrollView java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.FrameLayout ? android.widget.HorizontalScrollView ? android.support.design.widget.TabLayout 二.TabLayou

&lt;iOS 导航栏&gt;第一节:导航栏透明方法实现代码

说下导航栏的透明方法: 很多应用需要导航栏随着向上滑动,逐渐从透明变成不透明,很炫酷,大部分应用都在使用导航栏渐变效果,现附上代码然后直接将实现,一会讲下如何来实现,这一部分直接上代码. 先附上代码: 方法声明: #import <UIKit/UIKit.h> @interface IDSNavBarView : UIView - (instancetype)initWithFrame:(CGRect)frame titleImg:(UIImage *)aTitleImg; - (UILabe

第二百三十八节,Bootstrap输入框和导航组件

Bootstrap输入框和导航组件 学习要点: 1.输入框组件 2.导航组件 3.导航条组件 本节课我们主要学习一下Bootstrap的两个个组件功能:输入框组件和导航导航条组件. 一.输入框组件 文本输入框就是可以在<input>元素前后加上文字或按钮,可以实现对表单控件的扩展. 在左侧添加文字 input-group-addon样式class类,写在input同级的span里,给输入框添加一个左片段(Bootstrap)input-group样式class类,写在input外层div里,将

JS学习笔记(一): 使用原生JS 实现导航栏下多级分类弹出效果

在给静态页面静添加交互效果时遇到的问题 : 鼠标划入二级菜单时 一级菜单样 ":hover" 式无法保持 情景如下: 解决思路: 利用二级菜单的onmouseover/out事件 重新构建一级菜单 ".hover" 样式类 代码如下: CSS部分: 在原来的目标:hover样式中 增加 .hover状态 li.app_jd a:hover,li.app_jd a.hover{ background-position: -126px -397px; } li.serv

实现底部导航栏

许多的App都使用底部导航栏来实现导航功能,我们可以使用RadioGroup+RadioButton的形式或者直接Button数组的方式实现,而谷歌官方提供了FragmentTabHost来方便快捷实现底部导航栏. android.support.v4.app.FragmentTabHost 主要代码: fragmentTabHost.setup(this, getSupportFragmentManager(), R.id.layout_content); for (int i = 0; i 

音乐导航

<!doctype html> <html> <head> <title>音乐导航</title> <script> *{margin:0;padding:0;} #nav{ width:100%; height:56px; margin-top:50px; background:#1f0a31 url(images/topbg1.jpg) no-repeat; background-size:100%;/*背景的大小*/ backg

css -- 导航条

1.垂直导航条 HTML: <ul class="nav"> <li><a href="">Home</a></li> <li><a href="">Home</a></li> <li><a href="">Home</a></li> <li><a hre

【REACT NATIVE 系列教程之五】NAVIGATOR(页面导航)的基本使用与传参

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/react-native/2248.html 今天介绍一种应用开发中常用的负责页面切换及导航功能的组件:Navigator 一:Navigator 对于页面导航其实主要功能就是:每个页面都知道本身应该切换到哪个页面,并且切到的页面会记录从哪里来,如果要返回的话,知道返回到哪个页面.这一切都不需要再用逻辑管理!而且每个页面之间也可以进行参数传递,

网易首页模仿心得---导航栏CSS篇

不仅是CSS方面学习到很多技法,而且由于自己也懂一些SEO,对网易的一些CSS+SEO优化方法,也收获颇多!(本人也是平面设计师,很喜欢网易这类简约型的网页) 好了,在此之前强烈推荐大家可以尝试一下sublime text3 这款编辑器,之前用的editplus,感觉前者真的非常强大,很多插件会让网页开发的速度快很多,很多!! 我首先看了网易的重置CSS样式表和mata标签,其中mata标签中有一行 <meta name="robots" content="index,