进行打包的原因:apk文件就是一个包,打包就是要生成apk文件,有了apk别人才能安装使用。打包分debug版和release包,通常所说的打包指生成release版的apk,release版的apk会比debug版的小,release版的还会进行混淆和用自己的keystore签名,以防止别人反编译后重新打包替换你的应用。简单点说就是给你的apk发身份证,上户口,防止和你长的一样的人,假冒你。这里的apk身份证就是我们的“.jks”文件。所以这个jks文件很重要。
如果同一代码,生成两个jks文件打包,那就代表的是两个软件。
没有".jks"文件的打包:Build--->Generate Signed Bundle or APK--->选中APK--->Create New……--->填写信息--->Build Type选中release
有".jks"文件的打包:Build--->Generate Signed Bundle or APK--->Choose existing……--->选中之前设置过的文件夹
进行界面转换的实现:利用Intent实现。Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求。
intent有两种类型:explicit(显式)的和implict(隐式)。
explicit(显式)相关代码如下:
其中SecondeActivity为你想要转换到的界面。而SecondActivity代码中可以加入自己想要加入的需要实现的功能,也可以什么都不用加。
不需要加入多余的功能:
加入了想实现的功能:
implict(隐式):
Intent intent=new Intent();
intent.setAction("cn.itcast.start_activity");
startActivity(intent);
其中setAction中的cn.itcast.start_activity为AndroidMainfeist.xml文件中对要打开的Activity的action的name,使用隐式必须在AndroidMainfeist.xml文件中编写对应activity的intent-filter
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SecondActivity" />
<activity android:name=".ThirdActivity">
<intent-filter>
<action android:name="cn.itcast.start_activity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
//Second为显示调用无需写intent-filter
//Third为隐式调用要编写intent-filter
选中复选框事件的实现:利用复选框CheckBox实现。
CheckBox除了从Button继承而来的属性外,没有自己的属性,但从CompoundButton继承了一个属性android:checked用于表示是否选中。可以把多个 CheckBox
放在一起实现同时选中多项,但是,记住,它们之间没有任何关系,一个的选中并不会影响另一个选中或者不选中。
android:checked="" 用于表示未点击情况下是否选中复选框,若未设置则默认初始状态下未选中复选框。
android:button="" 可用于设置自定义的选中按钮样式。其中引号内为你所想要设置的按钮的样式图片。
isChecked():用于判断自身是否选中。
setChecked(boolean checked):设置自身是否选中状态。
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked):
OnCheckedChangeListener:选中状态改变监听器,当自身选中状态变化时会触发这个事件。
由于复选框可以选中多项,所有为了确定用户是否选择了某一项,还需要为每一个选项添加setOnCheckedChangeListener事件监听
checkbox.OnCheckedChangedListener接口可用于对CheckBox的状态进行监听当CheckBox的状态在未被选中和被选中之间变化时,该接口的onCheckedChanged()方法会被系统调用CheckBox通过setOnCheckedChangeListener()方法将该接口对象设置为自己的监听器。
如果要获得选中的CheckBox,有两种方式:
- 为每个CheckBox添加事件:setOnCheckedChangeListener
- 弄一个按钮,在点击后,对每个 CheckBox 进行判断isChecked()
相关代码如下:
密码的显示和隐藏事件的实现:
setTransformationMethod是TextView的一个方法,EditText继承于TextView自然可以使用
这个方法是用来设置其中text的转换显示接收的参数是TransformationMethod接口。
几个常用属性:HideReturnsTransformationMethod :隐藏回车
SingleLineTransformationMethod :不能用换行回车
PasswordTransformationMethod :密码类型
ReplacementTransformationMethod :抽象类,前面两个都是继承于这个抽象类,很明显就是替换,我们可以自己去继承这个类实现自己的TransformationMethod
显示为明文:
editText.setTransformationMethod(HideReturnsTransformationMethod.getInstance())
显示为密文:
editText.setTransformationMethod(PasswordTransformationMethod.getInstance())
相关代码如下:
无焦点提示实现:
Toast.makeText(Context context,CharSequence text,int duration)
参数一(context):环境上下文
参数二(text):要提示的文字
参数三:提示时间为多久(Toast.LENGTH_SHORT提示时间短,Toast.LENGTH_LONG提示时间长)
注:只有上述是不能展示出来的,还需要调用show()方法
即:Toast.makeText(Context context,CharSequence text,int duration).show();