• 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
  • 相关阅读:
    如何划分与组织内存(上)?
    CountDownLatch和CyclicBarrier:如何让多线程步调一致?
    怎样用读写锁快速实现一个缓存?
    并发容器的前世今生是怎样的?
    java的原子类到底是啥?ABA,CAS又是些什么?
    设置工作模式与环境(中):建造二级引导器
    希尔排序
    order by是怎样工作的?
    如何用信号量去实现一个限流器?
    读多写少的场景下,竟然还有比读写锁更牛X的锁?
  • 原文地址:https://www.cnblogs.com/bimingcong/p/4822274.html
Copyright © 2020-2023  润新知