一、Button 按钮
按钮是程序中最常见的一个元素,我们通过一个例子感受一下,代码的讲解都写在注释里了,所以我就直接上代码和代码的运行结果。
  1. package android.basic.lesson9;


  2. import android.app.Activity;

  3. import android.os.Bundle;

  4. import android.view.View;

  5. //不熟悉内部类的朋友可以留意一下这里的导入方式

  6. import android.view.View.OnClickListener;

  7. import android.widget.Button;

  8. import android.widget.TextView;


  9. public class MainHelloButton extends Activity {

  10.    /** Called when the activity is first created. */

  11.    @Override

  12.    public void onCreate(Bundle savedInstanceState) {

  13.        super.onCreate(savedInstanceState);

  14.        setContentView(R.layout.main);


  15.       //实现一个多按钮可用的单击监听器对象

  16.       OnClickListener listener = new Button.OnClickListener(){

  17.                        @Override

  18.                        public void onClick(View v) {

  19.                                setTitle("您的答案是:"+((TextView)v).getText());

  20.                        }

  21.       };


  22.       //为界面中的每个按钮绑定上这个单击监听器

  23.       findViewById(R.id.Button01).setOnClickListener(listener);

  24.       findViewById(R.id.Button02).setOnClickListener(listener);

  25.       findViewById(R.id.Button03).setOnClickListener(listener);

  26.    }

  27. }


下面是布局文件:
  1. <?xml version="1.0" encoding="utf-8"?>

  2. <linearlayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:gravity="center" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">

  3.        <textview android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/TextView01" android:text="杜鹃不啼,如何让它啼?" android:textsize="20sp" android:layout_marginbottom="10dp">

  4.        </textview>


  5.        <button android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/Button01" android:text="杀之不足惜!" android:textsize="20sp">

  6.        </button>


  7.        <button android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/Button02" android:text="诱之自然啼!" android:textsize="20sp">

  8.        </button>


  9.                <button android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/Button03" android:text="待之莫须急!" android:textsize="20sp">

  10.        </button>

  11. </linearlayout>


再下面就是运行效果: 1.png点击某个按钮之后,标题栏发生变化: 2.png我们可以留意到 OnClickListener 是View的一个内部接口,也留意到想更改某个Activity的标题栏,可以用setTitle的方法直接设置。 如果看源代码的话我们也可以留意到Button是我们下面要讲的TextView的子类,对句话你有个印象就行了。二、TextView 文本框我们在很早以前的例子里已经开始使用,TextView这个组件,足可见他应用之广泛。它的用处就是显示文本,它也是最基本的一个视图组件。我们有必要看一下TextView的继承关系:3.jpg从上图看到Button、EditText、CheckBox、RadioButton等等常用组件都是TextView的直接子类或间接子类,因此我们本讲里TextView内容虽然不多,但是这个组件大家还是要处处留意,逐步加深对TextView类的理解。下面我们举一个例子,来看一下TextView,并认识一下使用setMovementMethod()方法实现文本可滚动,下面看代码:
  1. package android.basic.lesson9;


  2. import android.app.Activity;

  3. import android.os.Bundle;

  4. import android.text.method.ScrollingMovementMethod;

  5. import android.widget.TextView;


  6. public class HelloTextView extends Activity {

  7.    /** Called when the activity is first created. */

  8.    @Override

  9.    public void onCreate(Bundle savedInstanceState) {

  10.        super.onCreate(savedInstanceState);

  11.        setContentView(R.layout.main);


  12.        //找到TextView组件

  13.        TextView tv = (TextView)findViewById(R.id.TextView01);


  14.        //设置移动方法

  15.        tv.setMovementMethod(ScrollingMovementMethod.getInstance());

  16.    }

  17. }


main,xml代码:
  1. <?xml version="1.0" encoding="utf-8"?>

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

  3. <textview android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/TextView01" android:text="@string/hello" android:textsize="30sp">

  4. </textview></linearlayout>

复制代码


长长的关于冯诺依曼的文本我就不粘贴了,它定义在strings.xml文件里。下面是显示效果:4.png我们知道在TextView外层套一个ScrollView也可以实现文本滚动的,同学们自己可以实现一下,然后对比其显示效果有何不同(某一个带滚动条)。三、EditView 可编辑文本框我们通过一个例子来介绍一下EditView。1、新建一个项目,在main.xml中添加一个EditText。<EditText    android:text=""    android:id="@+id/EditText01"  
   android:hint="随便输点什么然后按回车"    android:layout_width="fill_parent"    android:layout_height="wrap_content"></EditText>其中,android:hint属性就是没有输入内容之前的提示内容,hint英文的意思也是暗示之意。2、在onCreate()方法中添加如下代码:
  1. //找到xml中定义的EditText

  2. final EditText et = (EditText) findViewById(R.id.EditText01);

  3. et.setOnKeyListener(new View.OnKeyListener() {


  4.        @Override

  5.        public boolean onKey(View v, int keyCode, KeyEvent event) {

  6.                //监视硬键盘按键

  7.                if(event.getAction()== KeyEvent.ACTION_DOWN && keyCode== KeyEvent.KEYCODE_ENTER){

  8.                        //按住把EditView中的文版显示在吐司消息中

  9.                        Toast.makeText(MainHelloEditView.this, et.getText(),

  10.                                        Toast.LENGTH_SHORT).show();

  11.                        //返回true说明你已经处理了这个事件并且它应该就此终止,如果返回false就表示此事件还需要继续传递下去

  12.                        return true;

  13.