actionView

类似于actionBar也是在导航栏里用但是他使用的是menu菜单设置菜单项的AsAction=“always|withText”

本例使用LoaderCallbacks<Cursor>接口回调

使用菜单项

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

MainActivity.java

 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 }

ContentFragment

 1 <menu xmlns:android="http://schemas.android.com/apk/res/android" >
 2
 3     <!-- actionViewClass 设置ActionView控件的UI类 -->
 4     <item
 5         android:id="@+id/action_search"
 6         android:orderInCategory="100"
 7         android:showAsAction="ifRoom"
 8         android:actionViewClass="android.widget.SearchView"
 9         android:title="检索"/>
10
11     <!-- actionLayout 属性设置自定义ActionView的布局文件 -->
12      <item
13         android:id="@+id/action_search_custom"
14         android:orderInCategory="100"
15         android:showAsAction="always|collapseActionView"
16         android:actionLayout="@layout/actionview_search"
17         android:icon="@android:drawable/ic_menu_agenda"
18         android:title="自定义检索"/>
19
20 </menu>

menu_main

注意这里使用的碎片是ListFragment他可以实现onScrollListener  重写其中的方法 不过最终还得getListView().setOnScrollListener(this);  一般是在onActivityCreated()中实现绑定

时间: 2024-11-05 16:05:26

actionView的相关文章

ActionBar(16)自定义操作提供器ActionProvider之返回ActionView

1.代码 package com.e.acationbar; import android.content.Context; import android.graphics.drawable.ColorDrawable; import android.view.ActionProvider; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.MotionEvent; impo

form_tag (ActionView::Helpers::FormTagHelper)

form_tag(url_for_options = {}, options = {}, *parameters_for_url, &block) Starts a form tag that points the action to an url configured with url_for_options just like ActionController::Base#url_for. The method for the form defaults to POST. Options :

ActionBar(15)自定义操作提供器ActionProvider之返回空ActionView

1.类代码 package com.e.acationbar; import android.content.Context; import android.view.ActionProvider; import android.view.MenuInflater; import android.view.MenuItem; import android.view.MenuItem.OnMenuItemClickListener; import android.view.SubMenu; imp

Android ActionBar详解

关于ActionBar,相信大家并不陌生,但是真正能够熟练使用的也不是很多,这篇文章主要为大家详细介绍ActionBar的相关知识,ActionBar是在Android3.0中引入的概念,所以在2.x系统中使用ActionBar我们需要依赖ActionBarSherklock或者androi-support-v7库,ActionBarSherklock是anroid中非常有名的一个开源项目,android-support-v7是Google后来推出的一个库,有了v7库后AndroidBarShe

android,关于上下文菜单ContextMenu数据值的转递

在长按某view时,如该view有绑定OnCreateContextMenuListener,则会弹出ContextMenu上下文菜单,这类似于右键菜单,菜单弹出后点击某菜单项,则Activity或Fragment中的 public boolean onContextItemSelected(MenuItem item) 方法会响应菜单的点击,根据item的id来确定点击的是哪一个菜单项,从而进行进一步的操作. 那么现在的问题是,有时候我们只知道了点击的哪个菜单项是不够的,还需要知道更多的信息,

Android导航栏ActionBar的详细分析 一

尊重原创:http://blog.csdn.net/yuanzeyao/article/details/39378825 关于ActionBar,相信大家并不陌生,但是真正能够熟练使用的也不是很多,这篇文章主要为大家详细介绍ActionBar的相关知识,ActionBar是在Android3.0中引入的概念,所以在2.x系统中使用ActionBar我们需要依赖ActionBarSherklock或者androi-support-v7库,ActionBarSherklock是anroid中非常有名

Yii2 Apache + Nginx 路由重写

一.什么是路由重写 原本的HTTP访问地址: www.test.com/index.php?r=post/view&id=100 表示这个请求将由PostController 的 actionView来处理. 重写后的HTTP访问地址 www.test.com/post/view/id/100 这样的链接看起来简洁美观,对于用户比较友好.同时,也比较适合搜索引擎的胃口, 据说是SEO的手段之一. 二.Apache 路由重写 (一)开启Apache的重写模块 1. 打开apache的config的

Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/18234477 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文. http://developer.android.com/guide/topics/ui/actionbar.html Action Bar是一种新増的导航栏功能,在Android 3.0之后加入到系统的API当中,它标识了用户当前操作界面的位置,并提供了额外的用

yii2GridView的简单使用

GridView::widget([ 'dataProvider' => $dataProvider,// 你传过来的ActiveDataProvider // 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'],// 第一列排序 'sid',// 第二列,sid,与你查询的model字段相对应,可以少,不可以多 [ 'attribute' => 'sname',