目标:体会如何用Java进行Android开发
内容:1. 准备工作
2. 实战之抽奖小程序
准备工作
- 相比于C语言,Java和其他多数语言一样都是面向对象语言
- 面向对象和面向过程的区别
- 面向过程——步骤化:面向过程就是分析出实现需求所需要的步骤,通过函数一步一步实现这些步骤,接着依次调用即可
- 面向对象——行为化:面向对象是把整个需求按照特点、功能划分,将这些存在共性的部分封装成对象,创建对象不是为了完成某一步骤,而是描述某个事物在解决问题的步骤中的行为
实战之抽奖小程序
- 搭建界面
?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical"> <TextView android:id="@+id/tv_name" android:layout_width="match_parent" android:layout_height="250dp" android:background="#2F2E2F" android:text="东哥的Android课程" android:textColor="#FFF" android:textSize="30sp" android:gravity="center" /> <Button android:layout_width="match_parent" android:layout_height="65dp" android:background="#D65489" android:layout_marginTop="100dp" android:layout_marginLeft="50dp" android:layout_marginRight="50dp" android:text="开始抽奖" android:textColor="#fff" android:textSize="20sp" android:onClick="start" /> </LinearLayout>
- 实现抽奖功能
package com.example.luckyman; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.Button; import android.widget.TextView; import java.util.Random; import java.util.Timer; import java.util.TimerTask; public class MainActivity extends AppCompatActivity { //准备候选人 数组 String[] names = new String[]{"张三","李四","王五","糖糖","果果"}; Timer timer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //按钮的点击事件 public void start(android.view.View view){ //将View转化为Button Button btn = (Button)view; //获取当前标题 String title = btn.getText().toString(); //判断按钮的标题 if (title.equals("开始抽奖")){ //设置为暂停 btn.setText("暂停"); //创建定时器 timer = new Timer(); //每隔一段时间去执行一个任务 timer.schedule(new TimerTask() { @Override public void run() { produceOnePeople(); } },0,200); }else{ //设置为开始抽奖 btn.setText("开始抽奖"); //关闭定时器 timer.cancel(); } } //产生一个随机的人名 显示到文本控件上 public void produceOnePeople(){ //产生一个随机数 Random random = new Random(); int index = Math.abs(random.nextInt()) % names.length; //从数组里面取出这个名字 String name = names[index]; //将名字显示到文本框上 TextView tv = findViewById(R.id.tv_name); tv.setText(name); } }
运行结果