常用控件及其使用方法
- 1.控件是什么?
- 2.控件的基本属性
- 3.常用控件及其使用方法
- 4.一个小例子
- 5.总结与经验
1.控件是什么?
说到安卓的控件,Android提供了大量的UI控件在供开发者使用。合理的使用这些控件可以帮助开发者轻松编写出一个美观的功能完善的界面.
2.控件的基本属性
首先要了解的三个属性:
id: Id是给控件定义的唯一标识符,就像我们的身份证号码一样。
layout_width: 指定了控件的宽度,可以根据屏幕的大小填入数字,单位是dp.但更为常见的有三种可选值:match_parent(和父布局一样),fill_parent(不常用),还有wrap_content(让当前控件的大小刚好能够包裹子控件或者子布局)
layout_height: 指定了当前控件的高度,用法和layout_width一致。
3.常用控件及其使用方法
3.1 TextView文本框
TextView是安卓控件中最简单的一个了,它一般用于显示一些文本内容,我们新建一个Activity时一般都会有一个默认的TextView放在布局文件中。~Helloword!
如何新建一个TextView呢?
首先打开或者新建一个layout布局文件。
直接从菜单里拖动一个TextView到布局中,系统会自动为你初始化。或者在XML文件里编写如下代码:
<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center | top"
android:textSize="20sp"
android:color="#000000"
android:text="我是一个文本框"/>
<!---text属性指定了TextView里的文本内容-->
<!---textSize属性指定了TextView里的文本内容的字体大小,安卓中字体大小单位是sp-->
<!---text属性指定了TextView里的文本内容的字体颜色,才用的是RGB颜色模式-->
<!--gravity属性指定了文字在文本框中的对齐方式,可选值有体魄,bottom,left,right,center等,可以用“|”叠加-->
这个TextView长这样:
3.2 Button按钮
顾名思义,Button就是按钮。它用于执行一些操作,沟通前后台。它和其他控件一样拥有三个基本属性以外,我们还可以给它设置背景色。在layout文件中,Button长这样:
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#D3D3D3"
android:text="我是一个按钮"/>
<!-- :background属性指定了Button的背景色 -->
<!-- :text属性指定了Button上边的文字 -->
出来后就是这个样子:
但按钮是要点击的,我们需要给这个按钮添加点击事件、在布局对应的Activity.java文件中。我们会发现一个onCreate()方法,我们在这个方法中初始化我们的Button.
在Activity中,我们需要创建一个Button对象来引用Button。然后需要将这个button对象与我们XML文件中的Button控件绑定。
方法是:
Button button = findViewById(R.id.button1);
我们看AppCompatActivity中的findViewById()方法,它返回的是一个View对象。系统对自动帮我们转换成别的控件对象。
public <T extends View> T findViewById(@IdRes int id) {
return this.getDelegate().findViewById(id);
}
然后我们给这个Button设置点击事件,一般情况下我们给Button设置点击事件有两种方法。接下来我分别给大家举例子来说明这两种方法:
3.2.1.实现View.OnClickListener接口,重写onclick()方法。
我们来实现改变之前的Textview中的文字。代码如下:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
TextView textView;//声明TextView对象
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//所有自定义的东西都要写在这句话之下,否则会提示找不到控件
TextView textView = findViewById(R.id.textView);//绑定TextView控件
Button button = findViewById(R.id.button1);//绑定Button控件
button.setOnClickListener(this);设置点击函数
}
@Override
public void onClick(View v) {
switch (v.getId())
{
case R.id.button1 ://这个id是我们定义在XML文件中Button控件的ID
{
textView.setText("我被改变啦");//改变TextView的方法
break;
}
}
}
}
3.2.2.匿名内部类方法
View类里声明了一个接口,接口中有我们想要的函数。但我们有没有必要去创建一个新的类去实现这个接口,所以我们需要写一个匿名的内部类来实现这个接口。接口代码如下:
/*在Viewl类中*/
public interface OnClickListener {
/**
* Called when a view has been clicked.
*
* @param v The view that was clicked.
*/
void onClick(View v);
}
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView textView = findViewById(R.id.textView);
Button button = findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {//匿名内部类
@Override
public void onClick(View v) {//重写方法
textView.setText("我被改变啦!");
}
});
}
}
以上就是给Button设置点击事件的方法,个人喜好是按照页面上按钮的多少来分别使用这两种方法。按钮多用第一个,按钮少用第二个。
3.3EditText输入框
在我们登录或者搜索的时候,一般都会用到输入框。
和别的控件一样,EditText要实现三个重要的属性。代码如下:
<EditText
android:id="@+id/inputText"
android:layout_width="342dp"
android:layout_height="78dp"
android:hint="请输入小王最帅!"
android:textColor="#ffffff"
android:textSize="30sp"
/>
显示出来就是这个样子:
别的属性我们都见过,这个hint属性我们其实也见过,就是在输入的时候,框里总会提示一些灰色的文字,而在你输入文字之后,这些灰色的文字也会消失。作为一个输入框,最重要的就是获取用户输入的东西了。在onCreate()方法中,我们这样是这样做的:
EditText editText = findViewById(R.id.inputText);
String inputString = editText.getText().toString();
这样我们就获取到了用户输入在文本框里的信息了。
3.4ImageView图片
ImageView是用来显示图片的一个控件。在XML文件中是这样定义的:
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/pikaqiu"/>
src属性就是为这个图片控件设定了图片。然后显示在界面上就是这样:
当然我们也可以在onCreate()方法中给ImageView设置图片,方法如下:
ImageView imageView = findViewById(R.id.image);
imageView.setImageResource(R.drawable.ic_launcher_background);
为避免篇幅过长,本篇文章先到这里,剩下的控件下篇文章接着给大家介绍。感谢观看,如果有不对的地方欢迎评论指正。我是不会打代码的小王。谢谢!