《第一行代码》读书笔记-第三章01 常见控件的使用方法

  1. TextView
  2. Button
  3. EditText
  4. ImageView
  5. ProgressBar
  6. Android 控件的可见属性
  7. AlertDialog
  8. ProgressDialog

TextView

我们使用android:gravity 来指定文字的对齐方式,可选值有topbottomleftrightcenter等, 可以用| 来同时指定多个值, 指定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 的实例,然后在按钮的点击事件里调用EditTextgetText()方法获取到输入的内容,再调用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进行指定,可选值有三种,visibleinvisiblegone

  • visible 表示控件是可见的,这个值是默认值,不指定android:visibility 时,控件都是可见的。
  • invisible 表示控件不可见,但是它仍然占据着原来的位置和大小,可以理解成控件变成透明状态了。
  • gone 则表示控件不仅不可见,而且不再占用任何屏幕空间。

我们还可以通过代码来设置控件的可见性,使用的是setVisibility()方法,可以传入View.VISIBLEView.INVISIBLEView.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" 转载请保留原文链接及作者。

目录