【Android开发】小项目1:点击按钮用Toast随机显示城市名称

Toast

Toast的相关知识已在我的上一篇文章介绍,需要请点下面链接
http://blog.csdn.net/zxfhahaha/article/details/78915477

Onclick事件处理函数

OnClick 事件是由用户在屏幕上做触摸点击的动作时产生的,实现的方法有匿名类的写法和用一个专门类实现OnclickListener接口

  1. 匿名类实现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后进行的操作
                                           });
    }
  1. 生成专门类实现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) {       
                                 }
                                  } 
资源
  1. 资源位置

资源均放置在工程中的 res 目录下,这些名称都是系统定义好的,分别代表特定类型的资源
这里写图片描述

  1. 数组资源
    ①字 符 串 常 量 和 整 数 常 量 均 可 定 义 为 资 源 。字符串资源即放在上图的/res/values/strings.xml中
    ②多种资源类型均可定义为数组,如字符串数组和整数数组。我们这个题目要求的是随机显示城市名称,显然这要用到字符串数组资源即string-array,然后通过下标索引,下标用生成的随机数表示就实现了随机显示城市名称

我在/res/values/strings.xml中定义了下图的字符串数组资源
这里写图片描述

  1. 资源引用
    已经在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个城市 ,因此我生成一个110的随机数找到对应的城市,

                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显示出来
            }
        });
    }


}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值