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

Android入门之界面设计

2013-11-27 22:33 357 查看
第一次接触android,与之前的嵌入式差别还是很大的,还好J***A是从C/C++衍生出来的,为我省去了很多时间。在进入android开发学习时,有点不知所措,很主要的一点是,当需要什么功能时,不清楚在库里面是否有相应的已经封装好的东西,以及对于整体的陌生,实在令我寸步难行啊。故借以此来记录学习,算是复习,也希望能在他人的学习中,提供自己的一些总结,希望都有所帮助。接下来,就开始我的界面总结吧~

一、关于一些单位:

px:实际屏幕的像素,英文即:pixel

pt:表示一个点,英文即:point

dp:逻辑长度单位,一般1dp = 1px

sp:与dp类似,根据用户的字体大小设置进行缩放

一般来说,尽量使用dp作为空间大小的单位,而使用sp作为文字大小的单位。

二、关于Activity的跳转:

在进行活动跳转时,使用的是Intent这个类,比如有

Intent intent = new Intent();

intent.setClass(本类.this, 要跳转的类.class);

在最后启动跳转startActivity(intent);

这样既可实现跳转。

当然,如果是在跳转中需要传递数据的,一般也是都要传递数据的,可以使用类Bundle来实现数据的传输。该类是“key-value”的形式。

一般的使用方法有:
Object get(String key);

void putString(String key, String value);

Bundle bundle = new Bundle();

bundle.putString("key1", value1);

bundle.putDouble("key2", value2);

...

intent.putExtras(bundle);
//此处将携带数据的bundle放入intent,当在跳转后的新界面需要使用该数据时,取出即可。

startActivity(intent);

三、跳转后的Activity:

在新的Activity中,我们将通过Bundle类来获取之前存入的数据。比如:

Bundle bundle = this.getIntent().getExtras();
//此处即获得了之前的Activity传进来的Bundle数据。

String value1 = bundle.getString("key1");

double value2 = bundle.getDouble("key2");

在此我们可以看到,在跳转前和跳转后,存入数据和取出数据都是呈对应关系的,这里应该很好把握吧~

四、当想要实现跳转后有返回结果的Activity:

意思就是如果你想在当前页面跳入新的页面处理完之后,在返回本页面的时候可以带回数据信息,则可使用下列方法。

这里定义两个页面:Activity1, Activity2;

第一个页面Activity1:

当第一个页面在进入第二个页面时,与之前的方法略不相同,即使用的是:startActivityForResult(intent, requestCode);

同时,需重写protected void onActivityResult(int requestCode, int resultCode, Intent data) {},该方法是实现对处理界面的返回。

第二个页面Activity2:

可以使用该语句来返回:
本类.this.setResult(Activity.RESULT_CANCELED, intent);
//该语句的两个参数,第一个参数可以为自己根据需要而定义,也可以用系统已经定义好的常量来使用。第二个参数即为传入的意图,可以根据需要在意图里添加相应的数据,如上述,使用Bundle来添加返回的数据。

同时需要在代码块最后关掉该页面:
本类.this.finish();

接下来讲解一下关于
startActivityForResult(intent, requestCode);

protected void onActivityResult(int requestCode, int resultCode, Intent data) {};

本类.this.setResult(Activity.RESULT_CANCELED, intent);

1.startActivityForResult(intent, requestCode)的请求码:

该函数用于第一和页面,一般用于界面中按钮的监听里,点击即实现活动的跳转。第一个参数intent自然不用再叙述了,对于第二个参数,是一个请求码,该请求码,可用于标记发出该请求的出处,即比如在一个活动中,有多个按钮同时实现跳转到相同的一个按钮,无论是点击哪个按钮,在跳转页面后,当再返回原页面时,需要判断出是由哪个按钮跳转而来的,此时的这个请求码标记就可以作为判断了,在后面附上简单示例代码,供大家参看。

2.onActivityResult(int requestCode, int resultCode, Intent data) {}的请求码、结果码:

此处可以实现在多请求码时,根据需要,进行判断处理。

接下来的代码,希望能帮助大家理解请求码,结果码的应用。

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);



if (requestCode == CALL_REQUEST) {

if (resultCode == Activity.RESULT_CANCELED) {

Bundle bundle = data.getExtras();



String phoneNumber = bundle.getString("PHONE_NUM");

Toast.makeText(this, "拨打的电话是:"+phoneNumber, 1000).show();

}

} else if (requestCode == ???) {

...........

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: