开发背景:

  当你想用抛硬币来决定事情的时候,那么硬币抛起的瞬间,你就有答案了。一样的,吃啥?eatwhat点开,按钮一点,你就可以知道你中午要吃啥。

话不多说,项目开发走起

  ADT点开,New==>Android Application Project ==>

  首先确定布局,第一版我们就做简单的功能,视图中有两个控件,一个文本(TextView)用来输出店家名称,一个按钮(Button)用来让用户点击进行店家名称的随机切换。在android开发中有两种方式来实现布局,今天我们先讲用配置文件.xml来实现。

  在android项目目录下res/layout/中有一个activity_main.xml的布局文件,我们在其中将其自带的默认的TextView进行设置:

    <TextView
android:id="@+id/shop_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/shop_name"
android:layout_centerInParent="true"
android:textSize="18sp" />

  接着设置Button按钮:

	<Button
android:id="@+id/random_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="@string/random_btn_text"/>

  这就是我们通过.xml创建出来的布局:

  这其中有两点要注意的是两个控件的文本我们都是通过res/values/strings.xml进行设置,这样在后续开发中便于修改以及对应的做国际化

  <string name="shop_name">店名</string>
  <string name="random_btn_text">点我</string>

  界面设置完,我们就来处理业务逻辑:

  在mainactivity.java中定义一个方法init()对控件进行初始化和设置监听:

	private void init() {

		//定义一个数组用来存放我们要的几个店名
shop = new String[]{
"食莆记","谷之味","王大妈水饺","兰州拉面","惠兴饭店"
}; //初始化控件textview
shop_name = (TextView) findViewById(R.id.shop_name); //初始化控件button
random_btn = (Button) findViewById(R.id.random_btn);
//注册按钮点击监听
random_btn.setOnClickListener(new RandomBtnClick());
}

   

  定义一个内部类RandomBtnClick来实现点击监听:

	class RandomBtnClick implements OnClickListener{

		@Override
public void onClick(View v) { //随机数,区间以之前定义的店家的数组为长度
Random random = new Random();
int num = random.nextInt(shop.length); //textview显示以该随机数为下标对应的商家数组的名字
shop_name.setText(shop[num]);
}
}

  

 

  这样,最基本的随机事件就完成了,想吃什么,随意,那就点开eatwhat,听天由命。。。

最新文章

  1. jdk 设计模式
  2. clob型不能用 distinct,以及转换clob类型方法
  3. ZOJ 3279
  4. uva 11294
  5. Phalanx--hdu2859(dp 最大对称子图)
  6. javascript之css常用属性
  7. CentOS+Apache+php无法访问redis的解决方法
  8. C# 异步操作
  9. java多线程基本概述(四)——死锁
  10. Linux信号实践(1) --Linux信号编程概述
  11. 使用node.js &amp; live server在移动端测试网站
  12. 一种隐蔽性较高的Java ConcurrentModificationException异常场景
  13. 【第八篇】SAP ABAP7.5x新语法之F4增强【续】
  14. (1.15)mysql锁问题之InnoDB锁
  15. VS2015 WPF Prism Xaml Designer error
  16. hdu 6395 Sequence (简单矩乘)
  17. linux diff 命令
  18. Warning -27077: The &quot;vuser_init&quot; section contains web function(s) when the &quot;Simulate a new user on each iteration&quot; Run-Time Setting is ON.
  19. Spring3.2.3+Quartz2.2.1 整合配置
  20. malefile

热门文章

  1. 图论--最小环--Floyd模板
  2. Docker 快速安装Jenkins完美教程 (亲测采坑后详细步骤)
  3. 再谈 PHP 未来之路
  4. python的with
  5. SQLite使用(二)
  6. thinkphp下的Webshell&amp;&amp;php过D盾一句话
  7. C语言程序设计实验报告四
  8. while持续输入的几种常用使用方法
  9. crontab自动启动小任务例子(每一分钟将当前日期打入一个文件)
  10. Java 设置PDF中的文本旋转、倾斜