Android开发三:常用控件1--TextView、EditText、Button

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

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

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

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

create_pro_Textview_EditText_Button

创建好以后,打开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" >
<EditText
android: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"
/>
<EditText
android: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>



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

 

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

preview_Textview_edittext_buttom

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

下面是编写好的程序,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;
    @Override
    public 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 stub
				String 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中的一个提示,效果如下

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

最后运行程序,如下图

run_textview_edittext_button

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

恩,此节到此完成。

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

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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值