android编程提高,Android 基础到提高

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();

}0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值