5. 更多组件开发
在开始之前,先跟读者强调一点:所有组件应当先与XML绑定!!!
1.XML资源文件
在目录,,/src/main/res/下会有几个文件夹,分别是:
- mipmap , 图标文件夹,名称后面是dpi的大小
- drawable , 图片文件夹,用于储存一些图片
- values , 资源文件夹 , -nights表示在深色模式
- layout,布局文件夹,用于储存页面布局XML文件
其中,values文件夹会有三个子XML文件,分别是:
-
colors.xml :用于储存16进制的颜色值,语法如下
<color name="颜色名称">#8位16进制</color>
- strings.xml :用于储存字符串变量,读者如实在不喜欢用其实也可以不用,但后期可能会提示这对无障碍用户产生困难,语法如下
<string name="变量名称">字符串</string>
- themes.xml :用于储存主题样式,我们暂时用不到,但后期会出,等读者基础点的都学完了之后
2.EditText:
EditText是个文本输入框,可以让用户输入文本,在XML中的属性也有很多个,如:
- android:id - 指定EditText的ID,用于在Java代码中引用。
- android:layout_width - 指定EditText的宽度,如
wrap_content
、match_parent
等。 - android:layout_height - 指定EditText的高度,如
wrap_content
、match_parent
等。 - android:inputType - 指定EditText的输入类型,如
text(文本)
、textMultiLine(多行文本)
、number(纯数字)
、datetime(日期时间)
等 - android:hint - 指定EditText的提示文本。
- android:maxLines - 指定EditText最多可以显示的行数。
- android:minLines - 指定EditText最少可以显示的行数。
- android:password - 如果设置为
true
,EditText中的文本将被星号或点号替换。 - android:singleLine - 如果设置为
true
,EditText将只能输入单行文本。 - android:text - 指定EditText的初始文本。
- android:textColor - 指定EditText文本的颜色。
- android:textColorHint - 指定EditText提示文本的颜色。
- android:textSize - 指定EditText文本的大小。
- android:textColorLink - 指定EditText中链接文本的颜色。
- android:background - 指定EditText的背景。
让我们随机定义一个作为示例(具体功能看自己需要):
这里定义了一个编辑文本框,和一个提交按钮,接下来要在Java文件中开发功能
绑定之后,若想要获取用户输入的信息,我们不能用for进行判断是否为空,这样做消耗内存,而且万一用户输入错了一个字,这个for不能被取消,因此我们只有在用户输入完点击提交按钮后才能获取内容:
获取内容的方法可以直接用EditText.getText()方法,但返回到的是Text而不是String,因此我要再补充个.toString(),代码如下
String input = editText1.getText().toString();
位置要放在button.OnClickListener(v->{ 这里!}) ,如图:
接下来让我们在AVD中运行下:
再输入之后,点击提交Toast显示输入内容,可见我们代码很成功
3 Dialog对话框:
对话框是不需要被XML所修饰就可以使用的,因此这里只有Java代码演示:
Dialog 有很多属性,标题,正文,确定键,取消键,和否定见
这里我们直接使用AlertDialog.Builder,代码如下:
AlertDialog.Builder builder = new AlertDialog.Builder(context);
之后可以在builder接好多修饰方法,如:
- 设置标题 .setTitle(CharSequence text)
- 设置正文 .setMessage(CharSequence text)
-
设置确认按钮.setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener)
-
设置否按钮 .setNegativeButton(CharSequence text, DialogInterface.OnClickListener listener)
-
设置取消按钮 .setNeutralButton(CharSequence text, DialogInterface.OnClickListener listener)
-
设置对话框是否可以被点击外部取消(默认是true) .setCancelable(boolean cancelable)
-
显示对话框 .show()
让我们把上文的Toast换成Dialog吧:
代码如下:
让我们运行一下:
结果很成功
总感觉少了点什么,等下一期继续吧,如果有不明白的可以私信作者,或者可以在评论留言,各路大牛可以一起帮助解决,那么我们下期继续 :)))