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

来源:互联网 发布:网络机房设备回收 编辑:程序博客网 时间:2024/05/02 00:12

最简洁的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);

 

 

原创粉丝点击