Android入门之界面设计

第一次接触android,与之前的嵌入式差别还是很大的,还好JAVA是从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 == ???) {

...........

}
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值