zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    HDOJ 4747 Mex
    HDU 1203 I NEED A OFFER!
    HDU 2616 Kill the monster
    HDU 3496 Watch The Movie
    Codeforces 347A A. Difference Row
    Codeforces 347B B. Fixed Points
    Codeforces 372B B. Hungry Sequence
    HDU 1476 Sudoku Killer
    HDU 1987 How many ways
    HDU 2564 词组缩写
  • 原文地址:https://www.cnblogs.com/bimingcong/p/4822274.html
Copyright © 2011-2022 走看看