首页 > 代码库 > Android入门笔记 - 界面开发 - TextView,Button,EditText,Toast

Android入门笔记 - 界面开发 - TextView,Button,EditText,Toast

今天简单介绍一下android中的控件资源,我们从一个登陆界面开始讲起,先贴代码:

准备工作:先在eclipse中创建一个android项目,我的项目名称是demo_login。


(1)在项目文件夹的 res/layout/ 文件目录下打开 activity_main.xml :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="18sp"
            android:text="用户名:" />

        <EditText
            android:id="@+id/et_username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="18sp"
            android:text="密    码:" />

        <EditText
            android:id="@+id/et_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/btn_login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="登陆" />
        <Button
            android:id="@+id/btn_quit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="取消"/>
    </LinearLayout>

</LinearLayout>

(2)然后打开项目 src/ 目录下的 MainActivity.java 文件:

package com.example.demo_login;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
	private Context mCtx;
	private EditText mUsername;
	private EditText mPassword;
	private Button mLogin;
	private Button mQuit;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		mCtx = MainActivity.this;
		mUsername = (EditText) findViewById(R.id.et_username);
		mPassword = (EditText) findViewById(R.id.et_password);
		mLogin = (Button) findViewById(R.id.btn_login);
		mQuit = (Button) findViewById(R.id.btn_quit);
		
		mLogin.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				String username = mUsername.getText().toString();
				String password = mPassword.getText().toString();
				if(username.equals("admin") && password.equals("admin")){
					Toast.makeText(mCtx, "登陆成功", Toast.LENGTH_SHORT).show();
				}
				else{
					Toast.makeText(mCtx, "登陆失败", Toast.LENGTH_SHORT).show();
				}
			}
		});
		
		mQuit.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				finish();
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

好了,代码就这么多,现在开始讲解:

activity_main.xml 文件是 MainActivity 的布局文件,android采用xml的方式配置控件,讲界面和逻辑分开,让开发更有效率,同时也简化了代码。我们先来看activitt_main.xml

定义TextView:

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="18sp"
            android:text="用户名:" />
定义EditText:

        <EditText
            android:id="@+id/et_username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
定义Button:

        <Button
            android:id="@+id/btn_login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="登陆" />

LinearLayout:流式布局,主要用来控制控件的排列方式,如果不明白,请看后面章节

TextView: 显示固定文本

EditText:文本输入框

Button:按钮

其中EditText 和 Button 设置了 id 属性,是为了我们在MainActivity中可以找到资源文件,并调用它们。现在看一下怎么调用:

我们看到MainActivity的 onCreate()方法, 程序启动后首先会进入这里:

这里就说明我们的布局文件activity_main.xml 是用来填充MainActivity的,setContentView()方法用来设置Activity的加载的布局文件。

		setContentView(R.layout.activity_main);
我们把两个输入框和两个按钮都设置成了成员变量,并采用findViewById(R.id.___)方法从布局文件中找到它们:

	private EditText mUsername;
	private EditText mPassword;
	private Button mLogin;
	private Button mQuit;
	mUsername = (EditText) findViewById(R.id.et_username);
	mPassword = (EditText) findViewById(R.id.et_password);
	mLogin = (Button) findViewById(R.id.btn_login);
	mQuit = (Button) findViewById(R.id.btn_quit);

然后我们给mLogin 登陆按钮设置了鼠标点击事件,如果点击登陆按钮,就会触发里面的 onClick() 方法,里面的功能很简单,就是从EditText中获取到输入的字符串,然后判断是否等于”admin“,如果是则在屏幕弹出Toast登陆成功。说道这里,Toast是什么东西,其实就是提示性的一个气泡,只要知道怎么使用就好了。

		mLogin.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				String username = mUsername.getText().toString();
				String password = mPassword.getText().toString();
				if(username.equals("admin") && password.equals("admin")){
					Toast.makeText(mCtx, "登陆成功", Toast.LENGTH_SHORT).show();
				}
				else{
					Toast.makeText(mCtx, "登陆失败", Toast.LENGTH_SHORT).show();
				}
			}
		});
然后mQuit按钮的点击事件调用了 finish() 方法,就是关闭Activity,就不用讲解了吧。


介绍一下Toast:

Toast是一种比较亲切的提示,作用就是给用户提示信息,只是它显示最快,最小,所以称之为亲切。使用很常见,使用方法:

	Toast.makeText(mCtx, "登陆成功", Toast.LENGTH_SHORT).show();
可能有人会问 mCtx 这个参数是什么意思,简单的说这是Context上下文对象,专门用来关联与Activity或Application相关的上下文(资源),我们看 mCtx的初始化:

	mCtx = MainActivity.this;
我比较喜欢在每个Activity中都创建一个 mCtx 对象,这样使用起来就会很方便,比如说创建Toast或者Adapter时很省事。个人使用Toast 我其实喜欢在Activity中封装一个方法专门用来显示Toast:

	private void showToast(String words){
		Toast.makeText(mCtx, words, Toast.LENGTH_SHORT).show();
	}
这样每次要使用Toast的时候,我只需要调用 showToast("要显示的语句")。 这样显得更加简洁,当然是个人爱好了。


好了,第一次就讲到这里吧,我觉得也没有什么好写的,控件的话主要是知道,会用就可以了,当然也可以自定义控件,在后面的章节再来讨论。

下面附上 Android文档 的 chm文件,如果要查文档,就可以用这个。当然推荐是到google官网上去查咯,被封了,没钱翻墙,就将就用吧!




Android入门笔记 - 界面开发 - TextView,Button,EditText,Toast