学习一下Android的基础控件Button 和 TextView的简单配合使用

  • 马上学Android 005 - Button TextView的简单使用02

完整的布局文件如下:

  • activity_main.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00BBFF"
android:orientation="vertical"
tools:context="com.chen.activity.MainActivity">


<TextView
android:text="哈哈,我通过点击鼠标轻易赚了..."
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tvGetMoney"
/>


<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点我一次赚一元"
android:id="@+id/btnGetMoney" />


<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击一次损失一元"
android:id="@+id/btnLoseMoney" />



</LinearLayout>

这样就完成两个基本控件的定义,可以通过它们的属性来控制控件的样式,现在我们只需要了解基本的属性即可。定义好了布局文件就可以在Java代码进行动态操作。代码如下

  • MainActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

public class MainActivity extends Activity{

private Button btnGetMoney; //声明按钮控件变量
private TextView tvGetMoney; //声明文本控件变量
private Button btnLoseMoney;
private int money = 0 //声明统计变量

@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savaedInstanceState);
setContentView(R.layout.activity_main);

btnGetMoney = (Button) findViewById(R.id.btnGetMoney); //绑定按钮控件
btnLoseMoney = (Button) findViewById(R.id.btnLoseMoney); //绑定按钮控件
tvGetMoney = (TextView) findViewById(R.id.tvGetMoney); //绑定文本控件

//绑定按钮监听器
btnGetMoney.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
money++;
tvGetMoney.setText("哈哈,我通过点击鼠标轻易赚了" + money + "元"); //显示最新money
}
});

btnGetMoney.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(money == 0){
//提示用户,使用Toast提示
Toast.makeText(Mainactivity.this,"现在已经是穷光蛋了,不要再按了!",Toast.LENGTH_SHORT).show();
}else {
money--;
tvGetMoney.setText("哈哈,我通过点击鼠标轻易赚了" + money + "元");
}
}
});
}
}

部署到真机或者模拟器看看效果吧!


上面是视频录制的内容,下面更新一下Toast的使用大全,如果你想看看如何高级使用Toast继续往下走着,翻译至Google官方文档

  • 基本版

首先创建一个通过makeText()创建一个Toast对象,需要传入三个参数1.context:上下文,2.text:显示文本,3.duration:显示时间,可以使用Toast.LENGTH_SHORT/Toast.LENGTH_LONG或者直接传入0/1,然后调用show()函数

1
2
3
4
5
6
Context context = getApplicationContext();
CharSequence text = "Hello toast!";
int duration = Toast.LENGTH_SHORT;

Toast toast = Toast.makeText(context, text, duration);
toast.show();
  • 设置显示位置

可以通过setGravity(int,int,int)来设置显示的位置

1
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0); //设置显示左上角
  • 设置自定义Toast布局

在layout中声明布局如toast_layout.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toast_layout_root"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="8dp"
android:background="#DAAA"
>

<ImageView android:src="@drawable/droid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
/>

<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFF"
/>

</LinearLayout>

注意必须要有android:id="@+id/toast_layout_root",然后在Java代码中实现解析:

1
2
3
4
5
6
7
8
9
10
11
12
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom_toast,
(ViewGroup) findViewById(R.id.toast_layout_root));

TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("This is a custom toast");

Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();

这样就完成了自定义的Toast界面显示了,你实现了没?