码迷,mamicode.com
首页 > 其他好文 > 详细

day4.11总结_actionbar和通知

时间:2016-05-13 04:20:15      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:

一、 ActionBar(动作栏,工具栏(toolbar))

ActionBar android3.0以后推出的一个动作栏对象,在使用前activity的主题(Theme)不能是noTitleBar,noActionBar.

 

具体在使用actionBar通常会先通过activitygetActionBar方法获得actionBar,然后再调用

actionBar相关的方法执行一系列操作,例如设置home返回,设置tab导航等。

 

重点掌握:设置actionBar的样式的过程,一般是

修改主题。

例子1actionbarpagerView同步滑动

public class MainActivity extends Activity implements TabListener, OnPageChangeListener {

 

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

setViewPager();

setActionBar();

}

ActionBar bar;

private void setActionBar() {

//获得actionBar

bar=getActionBar();

//bar.hide();(隐藏actionBar)

//bar.show();(显示actionBar)

//actionBar显示home返回按钮

//bar.setDisplayHomeAsUpEnabled(true) ;

bar.setDisplayShowTitleEnabled(false);   标题隐藏  

bar.setDisplayShowHomeEnabled(false);   logo隐藏

//.....具体setXXX可参考APIDemos

//actionBar上添加tabs(选项卡)

//设置导航模式

bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

bar.addTab(bar.newTab().setText("TAB00").setTabListener(this));   设置监听器

bar.addTab(bar.newTab().setText("TAB01").setTabListener(this));

}

private ViewPager vPager;

private void setViewPager(){

vPager=(ViewPager) findViewById(R.id.vPagerId);

InnerAdapter adpater=new InnerAdapter();

vPager.setAdapter(adpater);

vPager.setOnPageChangeListener(this);

}

class InnerAdapter extends PagerAdapter{

@Override

public int getCount() {

return 2;

}

@Override

public boolean isViewFromObject(View arg0, Object arg1) {

return arg0==arg1;

}

@Override

public Object instantiateItem(ViewGroup container, int position) {

TextView tv=new TextView(MainActivity.this);

tv.setTextSize(30);

tv.setText("Pager-"+position);

container.addView(tv);

return tv;

}

@Override

public void destroyItem(ViewGroup container, int position, Object object) {

container.removeView((View)object);

}

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

if(item.getItemId()==android.R.id.home){//记住点击home键就关闭页面

finish();

}

return super.onOptionsItemSelected(item);

}

/**tab选中时执行此方法*/

@Override

public void onTabSelected(Tab tab, FragmentTransaction ft) {

//设置viewPager的当前item

vPager.setCurrentItem(tab.getPosition());   设置页面滑动到当前页

}

@Override

public void onTabUnselected(Tab tab, FragmentTransaction ft) {

}

@Override

public void onTabReselected(Tab tab, FragmentTransaction ft) {

}

@Override

public void onPageScrollStateChanged(int arg0) {

}

@Override

public void onPageScrolled(int arg0, float arg1, int arg2) {

}

@Override

public void onPageSelected(int position) {

//设置actionBar当前tab

bar.setSelectedNavigationItem(position);   设置滑动到当前bar

}

}

 

例子2:调用分享功能(右上角的actionbar和按钮方式)

public class MainActivity extends Activity {

 

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);  初始化一个菜单

MenuItem item=menu.findItem(R.id.share);    找到shareitem

ShareActionProvider ap=(ShareActionProvider)item.getActionProvider();

 

Intent intent=new Intent(Intent.ACTION_SEND);

intent.putExtra(Intent.EXTRA_TEXT,"helloworld");

intent.setType("text/*");

ap.setShareIntent(intent);   添加跳转的应用

 

return true;

}

public void onClick(View v){      按钮方式

Intent target=new Intent(Intent.ACTION_SEND);

target.putExtra(Intent.EXTRA_TEXT, "helloworld");

target.setType("text/*");

//创建一个分享选择器

Intent intent=Intent.createChooser(target, "分享");

startActivity(intent);

}

}

 

二、通知

1.Notitification (通知组件)

例子3:消息通知

public class MainActivity extends Activity {

 

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

 

public void onClick(View v){

//构建一个Builder对象

Notification.Builder builder=new Notification.Builder(this);

//设置Builder对象

builder.setSmallIcon(R.drawable.ic_launcher);   设置小logo

builder.setContentTitle("title");               设置标题

builder.setContentText("Content");            设置内容

builder.setTicker("来新通知了");//引爆消息    设置提示信息

//点击时启动另外组件(例如activity)

//builder.setContentIntent(intent)

//构建通知对象

Notification ntf=builder.build();

//可选项(设置通知是否可清除)

//ntf.flags=Notification.FLAG_NO_CLEAR;

//发送通知(借助一个系统服务)

NotificationManager nm=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);

nm.notify(100, ntf);

}

}

 

2.Toast(吐丝通知)

例子4Toast

Toast toast = new Toast(getApplicationContext());

toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);  对齐方式

toast.setDuration(Toast.LENGTH_LONG);

toast.setView(layout);

toast.show();    别漏了

 

day4.11总结_actionbar和通知

标签:

原文地址:http://blog.csdn.net/gsd1602_yingmu/article/details/51336145

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!