《第一行代码》读书笔记-第三章01 常见控件的使用方法
TextView
我们使用android:gravity
来指定文字的对齐方式,可选值有top
、bottom
、left
、right
、center
等, 可以用|
来同时指定多个值, 指定center
, 效果等同于center_vertical|center_horizontal
,表示文字在垂直和水平方向都居中对齐。
通过android:textSize
属性可以指定文字的大小,通过android:textColor
属性可以指定文字的颜色
Button
每当点击按钮时,就会执行监听器中的onClick()方法,我们只需要在这个方法中加入待处理的逻辑就行了。除了前面所使用匿名类的方式来注册监听器,也可以使用实现接口的方式来进行注册,代码如下所示:
public class MainActivity extends Activity implements OnClickListener {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
// 在此处添加逻辑
break;
default:
break;
}
}
}
EditText
允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理
通过android:hint
属性设置 提示性文字。
通过android:maxLines
属性 指定了EditText 的最大行数,这样当输入的内容超过设置值时,文本就会向上滚动,而EditText 则不会再继续拉伸。
获得EditText
中的内容,首先通过findViewById()
方法得到EditText
的实例,然后在按钮的点击事件里调用EditText
的getText()
方法获取到输入的内容,再调用toString()
方法转换成字符串。
ImageView
ImageView
是用于在界面上展示图片的一个控件。
使用android:src
属性给ImageView 指定了一张图片
在程序中通过代码动态地更改ImageView 中的图片:
ImageView imageView = (ImageView) findViewById(R.id.image_view);
imageView.setImageResource(R.drawable.jelly_bean);
ProgressBar
ProgressBar
用于在界面上显示一个圆形进度条(旋转),表示我们的程序正在加载一些数据。
还可以给ProgressBar 指定不同的样式,刚刚是圆形进度条,通过style 属性可以将它指定成水平进度条。通过android:max 属性给进度条设置一个最大值。
style="?android:attr/progressBarStyleHorizontal"
android:max="100"
在代码中动态地更改进度条的进度。修改MainActivity 中的代码,如下所示:
public class MainActivity extends Activity implements OnClickListener {
……
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
int progress = progressBar.getProgress();
progress = progress + 10;
progressBar.setProgress(progress);
break;
default:
break;
}
}
}
每点击一次按钮,我们就获取进度条的当前进度,然后在现有的进度上加10 作为更新后的进度
Android 控件的可见属性
所有的Android 控件都具有这个属性,可以通过android:visibility
进行指定,可选值有三种,visible
、invisible
和gone
。
visible
表示控件是可见的,这个值是默认值,不指定android:visibility
时,控件都是可见的。invisible
表示控件不可见,但是它仍然占据着原来的位置和大小,可以理解成控件变成透明状态了。gone
则表示控件不仅不可见,而且不再占用任何屏幕空间。
我们还可以通过代码来设置控件的可见性,使用的是setVisibility()
方法,可以传入View.VISIBLE
、View.INVISIBLE
和View.GONE
三种值。
AlertDialog
AlertDialog 可以在当前的界面弹出一个对话框,这个对话框是置顶于所有界面元素之上的,能够屏蔽掉其他控件的交互能力,因此一般AlertDialog 都是用于提示一些非常重要的内容或者警告信息。比如为了防止用户误删重要内容,在删除前弹出一个确认对话框。
public class MainActivity extends Activity implements OnClickListener {
……
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("This is Dialog");//标题
dialog.setMessage("Something important.");//信息
dialog.setCancelable(false);//可否取消(true点击空白处,Back键消失)
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {//可以不写就是一个按钮了
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.show();//将对话框显示出来
break;
default:
break;
}
}
}
ProgressDialog
ProgressDialog 和AlertDialog 有点类似,都可以在界面上弹出一个对话框,都能够屏蔽掉其他控件的交互能力。不同的是,ProgressDialog 会在对话框中显示一个进度条,一般是用于表示当前操作比较耗时,让用户耐心地等待。
public class MainActivity extends Activity implements OnClickListener {
……
@Override
public void onClick(View v) {//几个方法同上
switch (v.getId()) {
case R.id.button:
ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setTitle("This is ProgressDialog");
progressDialog.setMessage("Loading...");
progressDialog.setCancelable(true);//如果false不能Back键取消,一直存在,需要在代码中控制
//当数据加载完成后必须要调用ProgressDialog 的
dismiss()方法来关闭对话框
progressDialog.show();
break;
default:
break;
}
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 bin07280@qq.com
文章标题:《第一行代码》读书笔记-第三章01 常见控件的使用方法
文章字数:1.2k
本文作者:Bin
发布时间:2016-05-18, 14:39:21
最后更新:2019-08-06, 00:49:59
原始链接:http://coolview.github.io/2016/05/18/Android/%E3%80%8A%E7%AC%AC%E4%B8%80%E8%A1%8C%E4%BB%A3%E7%A0%81%E3%80%8B%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0-%E7%AC%AC%E4%B8%89%E7%AB%A001-%E5%B8%B8%E8%A7%81%E6%8E%A7%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。