当前位置: 编程技术>移动开发
本页文章导读:
▪内部类了解【转】 内部类理解【转】
java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类。内部类又分为:常规内部类、局部内部类、匿名内部类和静态嵌套类四种。我们内部类的知.........
▪ ActionBar的施用 ActionBar的使用
public class ActionBarMechanicsActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().request.........
▪ notification经过intent传递参数到activity notification通过intent传递参数到activity
项目开发中遇到以下问题,需要在一个Activity中显示不同的消息类型,消息通过notification触发,代码如下:
Intent intent = new Intent(context,
.........
[1]内部类了解【转】
来源: 互联网 发布时间: 2014-02-18
内部类理解【转】
java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类。内部类又分为:常规内部类、局部内部类、匿名内部类和静态嵌套类四种。我们内部类的知识在android手机开发中经常用到。
一、常规内部类
所谓常规内部类,或者说内部类,指的就是除去后面三种之外的内部类(这算什么解释。。。)
先写一个最简单的内部类的例子,大家感觉一下:
<div id="highlighter_840510" ><div ><div ><a title="view source" href="http://android.yaohuiji.com/archives/category/java/page/5#viewsource">view source</a><a title="print" href="http://android.yaohuiji.com/archives/category/java/page/5#printsource">print</a><a title="?" href="http://android.yaohuiji.com/archives/category/java/page/5#about">?</a>
java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类。内部类又分为:常规内部类、局部内部类、匿名内部类和静态嵌套类四种。我们内部类的知识在android手机开发中经常用到。
一、常规内部类
所谓常规内部类,或者说内部类,指的就是除去后面三种之外的内部类(这算什么解释。。。)
先写一个最简单的内部类的例子,大家感觉一下:
<div id="highlighter_840510" ><div ><div ><a title="view source" href="http://android.yaohuiji.com/archives/category/java/page/5#viewsource">view source</a><a title="print" href="http://android.yaohuiji.com/archives/category/java/page/5#printsource">print</a><a title="?" href="http://android.yaohuiji.com/archives/category/java/page/5#about">?</a>
[2] ActionBar的施用
来源: 互联网 发布时间: 2014-02-18
ActionBar的使用
这是3.0的一个功能模块,就是代替以前的应用中的title,在bar的左上方显示应用图标,右上方显示代替传统的menu的多个菜单按钮.
public class ActionBarMechanicsActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("Normal item1");
menu.add("Normal item2");
MenuItem actionItem1 = menu.add("Action Button1");
MenuItem actionItem2 = menu.add("Action Button2");
MenuItem actionItem3 = menu.add("Action Button3");
actionItem1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
actionItem2.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
actionItem3.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
actionItem1.setIcon(android.R.drawable.alert_dark_frame);
actionItem2.setIcon(android.R.drawable.alert_dark_frame);
actionItem3.setIcon(android.R.drawable.ic_menu_share);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Toast.makeText(this, "Selected Item: " + item.getTitle(),
Toast.LENGTH_SHORT).show();
return true;
}
}
这是3.0的一个功能模块,就是代替以前的应用中的title,在bar的左上方显示应用图标,右上方显示代替传统的menu的多个菜单按钮.
[3] notification经过intent传递参数到activity
来源: 互联网 发布时间: 2014-02-18
notification通过intent传递参数到activity
项目开发中遇到以下问题,需要在一个Activity中显示不同的消息类型,消息通过notification触发,代码如下:
Intent intent = new Intent(context,
NotificationDetailsActivity.class);
intent.putExtra(PNConstants.NOTIFICATION_ID, notificationId);
intent.putExtra(PNConstants.NOTIFICATION_TITLE, title);
intent.putExtra(PNConstants.NOTIFICATION_MESSAGE, message);
intent.putExtra(PNConstants.NOTIFICATION_LOGIN_URI, loginUri);
intent.putExtra(PNConstants.NOTIFICATION_URI, uri);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.setLatestEventInfo(context, title, message,
contentIntent);
notificationManager.notify(notificationId, notification);
如此,在接收多条不同类型的消息后,打开不同消息,进入消息详细页面NotificationDetailsActivity显示的始终是最后一条消息内容,而不是根据消息类型分类显示各分类的最后一条。
为解决此问题有两种方法,但是没有找到合理的解释,先记录如下,
方法1:为intent添加不同的Action
intent.setAction(""+System.currentTimeMillis());
方法2:PendingIntent.getActivity的第二个参数设为消息类型notificationId,
PendingIntent contentIntent = PendingIntent.getActivity(context, notificationId, intent, PendingIntent.FLAG_UPDATE_CURRENT);
最新技术文章: