Toast
Toast的相关知识已在我的上一篇文章介绍,需要请点下面链接
http://blog.csdn.net/zxfhahaha/article/details/78915477
Onclick事件处理函数
OnClick 事件是由用户在屏幕上做触摸点击的动作时产生的,实现的方法有匿名类的写法和用一个专门类实现OnclickListener接口
- 匿名类实现OnClickListener接口
事件处理逻辑实现在 OnClickListener 接口的 onClick()函数中。
适用情况:每个控件都有自己独特的事件处理逻辑时采用这种写法显得比较紧凑。
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBtn=(Button)findViewById(R.id.button); //找到button的id
mBtn.setOnClickListener(new View.OnClickListener() { //匿名类实现监听接口
@Override
public void onClick(View view) { //点击button后进行的操作
});
}
- 生成专门类实现OnClickListener接口
适用情况:多个控件采用同一个处理逻辑
protect void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBtn=(Button)findViewById(R.id.button); //找到button的id
mBtn.setOnClickListener(new CountOnClickListener());
}
private class CountOnClickListener implements View.OnClickListener{ @Override
public void onClick(View view) {
}
}
资源
- 资源位置
资源均放置在工程中的 res 目录下,这些名称都是系统定义好的,分别代表特定类型的资源
- 数组资源
①字 符 串 常 量 和 整 数 常 量 均 可 定 义 为 资 源 。字符串资源即放在上图的/res/values/strings.xml中
②多种资源类型均可定义为数组,如字符串数组和整数数组。我们这个题目要求的是随机显示城市名称,显然这要用到字符串数组资源即string-array,然后通过下标索引,下标用生成的随机数表示就实现了随机显示城市名称
我在/res/values/strings.xml中定义了下图的字符串数组资源
- 资源引用
已经在strings.xml中定义好资源,那么如何引用呢?
在MainActivity的事件中写上下面两句
Resources res = getResources(); //资源引用
String [] city = res.getStringArray(R.array.city); //创建数组
代码实现
package com.example.flora.helloworld;
import android.content.res.Resources;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Html;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
private Button mBtn;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBtn=(Button)findViewById(R.id.button); //找到button的id
mBtn.setOnClickListener(new View.OnClickListener() { //用匿名类实现
@Override
public void onClick(View view) { //点击进行如下操作
Resources res = getResources(); //资源引用
String []city = res.getStringArray(R.array.city); //创建数组
Toast toast = Toast.makeText(MainActivity.this,city[(int) (Math.random() * 10)],Toast.LENGTH_SHORT);
//设置要浮现的文本,第二个参数就是内容 因为我设置的数组有10个城市 ,因此我生成一个1到10的随机数找到对应的城市,
toast.setGravity(Gravity.TOP,0,0); //设置toast显示的位置
LinearLayout layout = (LinearLayout) toast.getView();
layout.setBackgroundColor(Color.parseColor("#F5F5F5")); //设置toast的背景颜色
TextView v = (TextView) toast.getView().findViewById(android.R.id.message); //toast显示的文本内容
v.setTextColor(Color.RED); //设置toast的字体颜色
v.setTextSize(20); //设置toast的字体大小
toast.show(); //将toast显示出来
}
});
}
}