700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android 学习之路 四大组件之Activity1(内置人品计算器)

Android 学习之路 四大组件之Activity1(内置人品计算器)

时间:2022-07-20 14:11:09

相关推荐

Android 学习之路  四大组件之Activity1(内置人品计算器)

前言:

终于到了四大组件,打掉前面的“小怪”,来到安卓的核心boss,开心。

1 创建一个新的Activity

1>如果你想让你的Activity有多个启动图标 需要这样配置

<intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter>

2>Activity节点下的icon和label 可以和Application节点的icon和label不一样 如果没有配置activity下的icon和label属性 默认使用Application下的配置。

2.隐式意图

通过指定一组动作或者数据 开启activity 一般多用来跳转系统上层页面(对应其activity的过滤器的配置)

3.显式意图(用的较多)

两种调用方法 多用第一种

//1.Intent intent = new Intent(this,Test2Activity.class);//2.packageName 当前应用的包名 从清单列表中找 className要启动的activity页面intent.setClassName("com.zkcd.a2_activity","com.zkcd.a2_activity.Test2Activity");

通过指定具体的包名,类名 开启activity

(1)显示意图更加安全一些

(2)开启自己应用的界面用显示意图(不需要配置意图过滤器)

(3)隐式意图一般开启系统应用(电话拨号器 短信的发送器等等)的界面

4.人品计算器(写一个小案例使用上面所学)

很有意思的一个小案例,在学习中寻找乐趣,可谓学海无涯苦作舟呀~~ 漫漫长路

模仿网页小游戏人品计算器 逻辑很简单,主要实现把数据从第一个activity传递到第二个activity并显示出来。

MainActivity

public class MainActivity extends AppCompatActivity {private EditText et_name;private RadioGroup rG;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_name = findViewById(R.id.et_name);rG = findViewById(R.id.radioGroup);}public void bt_RP(View v) {//获得姓名String name = et_name.getText().toString().trim();if(TextUtils.isEmpty(name)){Toast.makeText(getApplicationContext(),"兄弟输入名字呀",1).show();return;}//获得所勾选的单选框int id = rG.getCheckedRadioButtonId();int sex = 0;switch (id) {case R.id.rb_male:sex = 1;break;case R.id.rb_female:sex = 2;break;case R.id.rb_other:sex = 3;break;}if(sex==0){Toast.makeText(getApplicationContext(),"你是男是女还是人妖呀,勾选呀",1).show();return;}//创建一个意图Intent intent = new Intent(this,ContentActivity.class);//把数据传递过去intent.putExtra("name",name);intent.putExtra("sex",sex);startActivity(intent);}}

ContentActivity

public class ContentActivity extends AppCompatActivity {@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);//设置布局setContentView(R.layout.activity_content);TextView tv_name = findViewById(R.id.tv_name);TextView tv_sex = findViewById(R.id.tv_sex);TextView tv_content = findViewById(R.id.tv_content);//获得跳转此页面的intentIntent intent = getIntent();//用什么类型存储数据 就用什么方法获得数据String name = intent.getStringExtra("name");int sex = intent.getIntExtra("sex",0);tv_name.setText(name);switch (sex){case 1:tv_sex.setText("男");break;case 2:tv_sex.setText("女");break;case 3:tv_sex.setText("人妖");break;}int total=0;byte[] bytes = name.getBytes();for (byte b: bytes){//计算机存储原理 计算机内的存储都是利用二进制的补码进行存储的。//正数的补码就是自身 负数的补码是原码的反码+1// 从byte转换成int 8位转换成32位 低位不变 高位补1//与上0xff 可以保持自身补码的一致性 0xff二进制就是1111 1111 高位补0//byte类型的数字要&0xff再赋值给int类型,其本质原因就是想保持二进制补码的一致性。int score=b&0xff;total+=score;}System.out.println(total);int abs = Math.abs(total)%100;if(abs>90){tv_content.setText("您的人品超级棒,兄嘚");}else if (abs>50){tv_content.setText("您的人品一般般哦,兄嘚");}else if (abs>20){tv_content.setText("您的人品有点次哦,兄嘚");}else{tv_content.setText("您的人品不谈了,兄嘚");}}}

其中的小细节就是计算名字人品的逻辑。代码中我进行了很详细的概述。(布局文件就不上了,后边还有大boss)

效果图:

选了一个俏皮的小猪 作为app图标

------------------------------------------------------------------END------------------------------------------------------------------------------------------

未完请移步下篇 activity2

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。