zoukankan      html  css  js  c++  java
  • 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()中实现绑定

  • 相关阅读:
    个人网站开发之用户模块
    个人网站开发记录(三)
    第二章 python变量及文件
    第十二章 函数的----
    第十一章 函数的参数
    第十章 函数
    第九章 内存管理
    第八章 文件的处理
    第七章 字符编码
    第六章 数据类型——元组、字典、集合、数据类型的转换
  • 原文地址:https://www.cnblogs.com/bimingcong/p/4822301.html
Copyright © 2011-2022 走看看