您的位置:首页 > 移动开发 > Android开发

深入浅出Android--Google手持设备应用程序设计-摘要

2011-06-15 13:10 447 查看
最简洁的AlertDialog
new AlertDialog.Builder(this).setTitle( "关于Android BMI")
.setMessage("Android BMI Calc")
.show();

AlertDialog加入一个按钮
new AlertDialog.Builder(this).setTitle(R.string.about_title )
.setMessage(R.string.about_m sg)
.setPositiveButton("确认",
new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which){
// TODO Auto-generated method stub
}
}).show();

使用Dialog的一般流程
1. 重载Activity的protected Dialog onCreateDialog(int id)方法
返回对应的Dialog对象
2.调用showDialog(id);方法,

常见的布局实现有
LinearLayout(线性版面配置)、FrameLayout(框架版面配置)、TableLayout(表格版面配置)、
AbsoluteLayout(绝对位置版面配置)、RelativeLayout(相对位置版面配置)等。

浮点数的格式化
DecimalFormat nf=new DecimalFormat("0.00");
double BMI = weight / (height * height);
result.setText("Your BMI is " + nf.format(BMI));

按钮绑定点击事件
button.setOnClickListener(new ClickListener(){
public void onClick(View v) {

});

单独的监听器
class SimpleAlertButtonClick implements OnClickListener{
@Override
public void onClick(View v) {
TextView tv = (TextView)findViewById(R.id.text1);
tv.setText("Now is ...");
showDialog(0);
}
}

Toast显示
这是一个类似Windows气泡提醒消息的东东
Toast.makeText(this, "BMI 计算器", Toast.LENGTH_SHORT).show();

开启网页
Uri uri = Uri .parse ("http://androidbmi.googlecode.com/");
Intent intent = new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);

如果网址是资源字符串
Uri uri=Uri.parse (getString(R.string.homepage_uri ));

添加菜单项
public boolean onCreateOptionsMenu(Menu menu) {
6 // TODO Auto-generated method stub
7 super.onCreateOptionsMenu(menu)
8 menu.add(0, MENU_ABOU T, 0, "关于...");
9 menu.add(0, MENU_Quit, 0, "结束");
10 return true;
11 }

点击菜单项事件处理
public boolean onOptionsItemSelected(MenuItem item) {
15 // TODO Auto-generated method stub
16 super.onOptionsItemSelected(item);
17 switch (item.getItemId()) {
18 case MENU_ABOU T:
19 openOptionsDialog();
20 break;
21 case MENU_Quit :
22 finish();
23 break;
24 }
25 return true;
26 }

自定义的Activity
1. 增加Activity类文件.java
2. 增加对应布局文件.xml
3. 在新加的Activity中绑定新加的布局
4. 在AndroidManifest.xml注册新的Activity类
5. 填写Intent,调用startActivity(…);
Intent intent = new Intent();
intent.setClass(Bmi.this, Report.class);
startActivity(intent);

如何传递数据给另外的Activity
Intent intent = new Intent();
intent.setClass(Bmi.this, Report.class);
Bundle bundle = new Bundle();
bundle.putString("KEY_HEIGHT",
field_height.getText().toString());
bundle.putString("KEY_WEIGHT",
field_weight.getText().toString());
intent.putExtras(bundle);
startActivity(intent);

如何接收从另外的Activity传递过来的数据
DecimalFormat nf = new DecimalFormat("0.00");
Bundle bunde = this.getIntent().getExtras();
double height =
Double.parseDoub le(bunde.getString("KEY_HEIGHT")) / 100;
double weight =
Double.parseDoub le(bunde.getString("KEY_WEIGHT"));
double BMI = weight / (height * height);
view_result.setText(getString(R.string.bmi_result ) +
nf.format(BMI));

如何在调试程序时加入调试信息
private static final String TAG= "Bmi";
Log.d(TAG , "find Views");
Log.d(TAG , "set Listensers" );
有五种Log 讯息形式可以用作记录。
1 Log.v(VERBOSE)详细讯息
2 Log.d(DEBUG) 除错讯息
3 Log.i(INFO)通知讯息
4 Log.w(WARN)警告讯息
5 Log.e(ERROR)错误讯息

在「Debug」环境配置,可以看到右下角的「LogCat」视窗。其上有五个醒目的
V、D、I、W、E 图示,分别代表着五种Log 形式(Verbose,Debug, Info,Warn, Error),还有一个绿色的「+」号,与一个红色的「-」号。

为LogCat 加上一个过滤器(Log Filter),只显示与TAG标签相关的讯息记录。

Activity的状态
u Active(活动)
u Paused(暂停)
u Stopped(停止)
u Dead(已回收或未启动)

启动过程
onCreate-> onStart-> onResume

呼叫另外一个Activity
onPause(1) -> onCreate(2) -> onStart(2) - onResume(2) -> onStop(1)

返回Activity
onPause(1) -> onCreate(2) -> onStart(2) - onResume(2) -> onStop(1)

如果要让再次被建立出来的Activity 看起来跟原本开启过的一样,那么在Activity 之间
切换时,我们就要留意保留资料:最好在每次Activity 运行到「onPause」或「onStop」状态时先保存资料,然后在「onCreate」时将资料读出来。

如何在储存偏好设定(Preference)/运行状态?
private static final String TAG= "Bmi";
public static final String PREF= "BMI_PREF";
public static final String PREF_HEIGHT= "BMI_Height";
SharedPreferences settings= getSharedPreferences(PREF, 0);
settings.edit().putString(PREF_HEIGHT,
field_height.getText().toString()).commit();

如何在读取偏好设定(Preference)/运行状态?
private static final String TAG= "Bmi";
public static final String PREF= "BMI_PREF";
public static final String PREF_HEIGHT= "BMI_Height";
SharedPreferences settings= getSharedPreferences(PREF, 0);
String pref_height= settings.getString(PREF_HEIGHT, "");
if(pref_height!=""){
field_height.setText(pref_height);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: