上一节写到android的工程目录结构,这一节继续,开始学习控件,中间的跨度挺大,关于Activity和intent的知识我就略过了,原因很简单,网上的关于那个的资料特别多,而且理论的东西我这都是了解就行,那些东西,在应用的过程中自然会熟练起来,还有就是我也是新手,对于那些东西不敢写,怕误人...。

这次写的控件有三个,TextView、EditText、Button。我以前学过winform,很简单就能找到对应的空间,TextView就是一个lable标签,用于显示不可编辑的文字。EditText是一个文本框,用于获取用户输入的文本信息。Button就是自然一个按钮了。

通过一个例子来学习三个控件。下面来做一个计算两个数字和的小程序,三个控件一次学完。

在Eclipse新建一个工程,如图:

创建好以后,打开res目录下,layout下的main.xml,切换到xml代码视图。把代码修改为如下

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" ><EditTextandroid:id="@+id/num1"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:inputType="number"></EditText><TextView android:text="@string/symbol"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textSize="20sp"/><EditTextandroid:id="@+id/num2"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:inputType="number"></EditText><Button android:id="@+id/plusbtn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center_horizontal"        android:text="@string/plus" /></LinearLayout>

下面讲解这段代码,这个文件首先是一个xml头,里面是一个LinearLayout布局控件,这是一个线性布局空间,先不说,以后留着单独学习。布局空间里面放了两个EditText控件,用于让用户输入两个数字。中间是一个TextView控件,控件主要用来显示文字。最后是一个按钮控件,点击计算值。

以上几个控件都有几个属性:

android:id属性,是控件的id,格式为@+id/someid,这样在程序的R.java文件里面就能自动生成控件的id值的索引,在程序中就可以用R.id.someid取得控件。

android:layout_width和android:layout_height属性,分别是空间的宽和高,通常值为 fill_parent或者wrap_content,当然也可以用数值。

android:text属性是控件上面显示的文本,值可以直接写,但是不建议,一般是在res目录下的string.xml里面定义,在代码里用@string/str来调用,或者在后台代码利用R.sting.str来使用。

android:inputType 我在两个EditText中都加入了一个inputType属性,值为number,这个值的意思是只允许输入数字,因为我们是求两个数字的和。可以去掉这个属性前后比较一下。

android:textSize这个属性就是字体的大小。单位有sp,dp,px等。可以百度一下。

最后的button上面还有一个android:layout_gravity属性,用这个属性,我把button设置成了居中显示。

这个文件就讲解到这里,下面来看string.xml里面的内容

<?xml version="1.0" encoding="utf-8"?><resources><string name="hello">Hello World, Textview_EditText_Button!</string><string name="app_name">Textview_EditText_Button</string><string name="symbol">加上</string><string name="plus">计算</string><string name="warning">请输入完整!</string><string name="about">关于</string><string name="exit">退出</string><string name="aboutmessage">天意人间,YYJ</string></resources>

下面三个就是我自己加的,第一个是标签上的文字,第二个是按钮上面的文字。最后一个在后面的程序里面用来提示。

界面部分到此结束,现在有个样子了,可以运行下看看,如图

下面来编写程序实现功能。

下面是编写好的程序,Textview_EditText_Button.java的代码

package com.yyj.Textview_EditText_Button;import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;public class Textview_EditText_Button extends Activity {/** Called when the activity is first created. */private EditText num1;private EditText num2;private Button plusbtn;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);num1=(EditText)findViewById(R.id.num1);num2=(EditText)findViewById(R.id.num2);plusbtn=(Button)findViewById(R.id.plusbtn);plusbtn.setOnClickListener(new OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubString numstr1=num1.getText().toString();String numstr2=num2.getText().toString();if (numstr1.length()>0&&numstr2.length()>0) {int n1=Integer.parseInt(numstr1);int n2=Integer.parseInt(numstr2);Toast.makeText(Textview_EditText_Button.this, n1+"+"+n2+"="+(n1+n2), Toast.LENGTH_LONG).show();}else {Toast.makeText(Textview_EditText_Button.this, R.string.warning, Toast.LENGTH_LONG).show();}}});}
}

接着来说这一段代码,先是定义了三个控件

   private EditText num1;private EditText num2;private Button plusbtn;

然后通过findViewById取得程序中的两个文本框和一个按钮

        num1=(EditText)findViewById(R.id.num1);num2=(EditText)findViewById(R.id.num2);plusbtn=(Button)findViewById(R.id.plusbtn);

findViewById的作用就是通过id的到控件,它的参数就是控件在R.java文件中生成的id索引。感觉类似于javascript中的getElementById…

然后给按钮绑定点击事件,这个应该在java中学过,我接触java不太多,不太清楚。plusbtn.setOnClickListener(),学过java的应该很容易看懂。

最后要说的一点就是后面的那个Toast。这是android中的一个提示,效果如下

,过一段时间后会自己消失,用来显示信息效果挺好。

最后运行程序,如下图

点击计算按钮后,注意划红线部分。

恩,此节到此完成。

至于理论部分,我这里不会写,程序中用到了会提。

编辑器太不给力了,每次发布完看的时候都有一部分代码显示不出来,还得改一遍...

最后附上本次生成的apk文件,不能传,改成了zip扩展名,Textview_EditText_Button.zip

转载于:https://www.cnblogs.com/tianyi-yyj/archive/2012/02/19/2358275.html

Android开发三:常用控件1--TextView、EditText、Button相关推荐

  1. android什么控件能够输入多行文字,Android开发:文本控件详解——EditText(一)基本属性...

    一.简单实例: EditText输入的文字样式部分的属性,基本都是和TextView中的属性一样. 除此之外,EditText还有自己独有的属性. 二.基本属性: hint 输入框显示的提示文本 te ...

  2. Android学习:常用控件

    Android学习:常用控件 学习要点:掌握文本框.编辑框.按钮.单选按钮.复选框等基本控件的用法 控件是Android应用程序中用户界面的重要组成元素,正是因为Android应用程序提供了很多具有不 ...

  3. android include 控件详解,Android开发中include控件用法分析

    本文实例讲述了Android开发中include控件用法.分享给大家供大家参考,具体如下: 我们知道,基于Android系统的应用程序的开发,界面设计是非常重要的,它关系着用户体验的好坏.一个好的界面 ...

  4. android textview点击部分,Android开发第二大控件,EditText的属性和使用方法

    EditText与TextView非常相似,它甚至与TextView 共用了绝大部分XML属性和方法.EditText与TextView的最大区别在于:EditText可以接受用户输入. 一.Edit ...

  5. Windows Phone开发:常用控件(上)

    2019独角兽企业重金招聘Python工程师标准>>> Windows Phone的控件有几个来源,和传统的桌面应用程序开发或Web开发一样,有默认提供的控件和第三方开者发布的控件. ...

  6. Android开发基础之控件EditText

    目录 一.基础属性 二.在提示文本旁添加图片 三.获取EditText内容 四.监听事件 五.制作登录界面 一.基础属性 1.id 设置组件id 2.layout_width 宽度 3.layout_ ...

  7. Android开发基础之控件CheckBox

    目录 一.基础属性 二.自定义样式 1.去掉CheckBox的勾选框 2.自定义背景颜色 3.自定义勾选框的背景图片 三.监听事件 一.基础属性 1.layout_width 宽度 2.layout_ ...

  8. 【android开发】 修改控件Spinner内容的字体大小 颜色等属性

    在anadroid开发中遇到此问题: 直接定义的Spinner控件,不能调整内容字体的大小,所以常会 因为控件太小,内容太长而使得不能完全显示,各种搜索,找到如下解决方法!希望对遇到同样问题 的朋友们 ...

  9. Android 第九课 常用控件-------ListView

    ListView允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内,同时屏幕上原有数据将会滚动出屏幕. 1.ListView简单用法 如何将ListView将你要显示的大量内容关联起来呢?这是个 ...

最新文章

  1. OSSIM平台安全事件关联分析实践
  2. nmap脚本(nse)使用总结
  3. 网站应分析哪些方面来提升网站优化的效果呢?
  4. DeepLearning tutorial(2)机器学习算法在训练过程中保存参数
  5. 闪念-许久未来一切没变
  6. 【Python】青少年蓝桥杯_每日一题_6.11_打印星号
  7. 老板让我每天刷群,无奈只能写一个自动群发脚本,不让自己疯狂复制粘贴
  8. DB_NAME、DB_UNIQUE_NAME、SERVICE_NAME和INSTANCE_NAME等的区别
  9. 4字节 经纬度_java 获取本机经纬度
  10. oracle 序列开始为2,【图片】【求助】为啥Oracle的sequence 第一次插入表从2开始。。【java吧】_百度贴吧...
  11. WebSocket使用sendObject(Object arg0)向页面方法发送对象
  12. android 编译打包pdf,Android使用iText生成pdf文件
  13. 无盘服务器秒卡 锐起0359,锐起无盘系统问题汇集
  14. 太极软件qn的代码_多版本QQ内置qn、qx模块
  15. 百度云下载不限速方法+软件
  16. 机器学习进阶 day4
  17. Android | 如何计算图片占用内存的大小
  18. java点餐系统实验报告_JAVA课程实践报告 基于web的点餐系统毕业设计.doc
  19. PHP数组函数extract 使用详解
  20. NC65根据sql读取缓存数据

热门文章

  1. 解决安装pytorch慢的方法(pip安装)
  2. [转] ROS-I simple_message 源码分析:MessageManager
  3. mysql int 补零_mysql int(11)字段左边自动补零了
  4. Vitis学习记录(三)
  5. Dom4j遍历解析XML测试
  6. Oracle查看死锁 .
  7. svg图片在vue脚手架vue-cli怎么使用
  8. windows快捷键命令汇总整理
  9. 安装memcached服务 和 php 安装memcache扩展
  10. eclipse/MyEclipse 日期格式、注释日期格式、时区问题