getString(R.string.homepage_url);//根据资源标识符获取内容
输入类型的验证
Android:inputType 替换以下属性
android:password|android:ginglieLine|android:number|android:phoneNum|
android:capitalize|android:autoText|android:editable
-----------------流程------------------
1.setContentView(R.layout.main);
2.findViews()
3.restorePrefs()//参考优先级
4.setOnclickListensers();
------------------规范---------------------
button_abc 表示按钮
field_abc 表示输入字段
view_abc 表示显示字段 text_view
------------------------创建菜单----------------------
override
public boolean onCreateOptionsMenu(Menu menu){
menu.add(0, MENU_ABOUT, 0, "关于...").setIcon(android.R.drawable.ic_menu_help);
menu.add(0, MENU_Quit, 0, "结束").setIcon(android.R.drawable.ic_menu_close_clear_cancel);
return super.onCreateOptionsMenu(menu);
}
//menu.add(0, 标识符(identifer), 0, 字符串或资源标识符).setIcon(android.R.drawable.ic_menu_close_clear_cancel);
图标 到 Tango,Nuvola,OpenclipArt 等网站有高质量的图标
内置图标 .setIcon(android.R.drawable.ic_menu_help) android 本身提供了一些现成的图标
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch(item.getItemId()) {
case MENU_ABOUT:
openOptionsDialog();
break;
case MENU_Quit:
finish();
break;
}
return super.onOptionsItemSelected(item);
}
包括 1。创建菜单 2。处理菜单
------------------------Manifest----------------------
Activity
Broadcast Intent Receiver
Service
Content Provider
package="com.demo.android.bmi" //命名空间
android:versionCode="1" //版本
android:versionName="1.0" //版本名
android:label="@string/app_name" //主界面的名称www.linuxidc.com
//程序切入点
//应用程序列表
intent-filter 有action 和 category 两个标签
service
receiver
provider
uses-permission
permission
instrumentation
-----------------------------Activity----------------------
1.独立的activity //单纯跳到下个屏幕
Intent intent = new Intent();
intent.setClass(srcActivity.this, tarActivity.class);
startActivity(intent);
2.相互依赖的activity //activity 之间提供数据
Intent intent = new Intent();
intent.setClass(srcActivity.this, tarActivity.class);
Bundle bundle = new Bundle(); //传递的数据
bundle.putString("key",value);
...putInt 等很多方法 参考帮助文档
intent.putExtras(bundle);
startActivity(intent);
//新activity 解开信息
Bundle bundle = getIntent().getExtras();
value = bundle.getString(key) //和set 数据类型相对应
。。。也可以使用 intent.setString 等方法传递参数不建议使用
----------------------intent------------------------
Intent intent = new Intent(动作,内容);
动作:Intent.ACTION_VIEW ...看帮助
内容:activity,Uri... 看帮助
startActivity(intent);
Uri uri = Uri.parse("http://baidu.com");
Uri uri = Uri.parse("geo: 39.895874, 116.321238");
-----------------信息提醒(Notification)--------------
1。状态栏提醒
铃音|震动|闪灯提醒|状态栏信息
比如收到新消息 版本更新等信息 等消息通知
2. 使用状态栏传递消息
protected void showNotification (double BMI) {
NotificationManager barManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); //获取消息管理器
//getSystemService(ALARM_SERVICE) //获取闹铃
查看帮助文档 getSystemService 找到最新的内置系统服务列表
Notification barMsg = new Notification( //提醒消息
R.drawable.icon_128,
"哦, 你过重了!",
System.currentTimeMillis() //信息到达时间
);
barMsg.defaults |= Notification.DEFAULT_SOUND;
//barMsg.defaults |= Notification.DEFAULT_ALL;
PendingIntent contentIntent = PendingIntent.getActivity( //当用户点选状态栏信息是执行一个activity
this,
0,
new Intent(this, Bmi.class),
PendingIntent.FLAG_UPDATE_CURRENT);
barMsg.setLatestEventInfo(
Report.this, //当前activity
"你的 BMI 值过高", //状态栏显示的主题
"通知监督人", // 状态栏中显示的说明
contentIntent // 传入参数 指定当用户按下状态栏中信息时让机器开始执行的功能
);
barManager.notify(0, barMsg); //通知信息
}
pendingInent getService getBroadcast 方法执行一个服务或广播
内置图标 R.drawable.stat_sys_warning //系统状态图标
-------------------对话框------------------
setPositiveButton("确定",
new DialogInterface.OnclickListener(){
public void Onclick(
DialogInterface dialoginterface, int i){
}
}
)
setPositiveButton, setNegativeButton, setNeutralButton
默认代表正面 中立 反对
对话框显示
AlertDialog.Builder ab= new AlertDialog.Builder(activity.this);
ab.setTitle
ab.setMessage
ab.setPositiveButton
ab.show
Toast界面组件(不弹出提醒) //提示信息
Toast.makeText(activity.this,消息,Toast.LENGTH_SHORT).show();
-------------------日志和调试Log------------------
模拟上的调试 Dev Tools -- > Developer Settings
管理日志 public static final boolean On = false;
实机上调试 usb 连接电脑 Devices 窗口显示实机的代号
系统不足的回收:
先回收与其它Activity 或 Service/Intent Receiver 无关的进程 (优先回收独立的Activity)
再回收处于Stoped状态的activity 最久没有使用的先回收
还不够回收Service
快不行 关掉可见的activity
关掉当前activity
最后就是换手机
-------------------优先级(Preference)------------------
private void restorePrefs() { //优先级(记住上次信息避免重复输入) 可以没有
SharedPreferences settings = getSharedPreferences("BMI_PREF", 0); //声明
寻找系统有无符合"BMI_PREF"字符串(PREF参数)作为文件名的优先级设置文件 如果有使用"settings" 作为代号操作
String pref_height = settings.getString(PREF_HEIGHT, ""); //获取内容
if(! "".equals(pref_height)) {
field_height.setText(pref_height);
field_weight.requestFocus();
}
}
@Override
protected void onPause() { //保存优先级设置
// TODO Auto-generated method stub
super.onPause();
// Save user preferences. use Editor object to make changes.
SharedPreferences settings = getSharedPreferences(PREF, 0);
settings.edit()
.putString(PREF_HEIGHT, field_height.getText().toString())
.commit();
}