常用的Android Widget组件学习①--Button and TextView


今天一上午做了一个关于Button and TextView的学习!具体如下!

常用的Android Widget组件学习①--Button and TextView

这是我所建立的目录文件

首先是设定布局:main.xml中

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:text="This is a button" android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button> <Button android:text="TextView" android:id="@+id/text_view_button" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button> </LinearLayout>

WidgetDemo.Activity里面的内容:

package com.example.widgetdemo; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; public class WidgetDemo extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); find_and_modify_button(); } private void find_and_modify_button(){ Button button = (Button) findViewById(R.id.button); button.setOnClickListener(button_listener); Button text_view_button = (Button) findViewById(R.id.text_view_button); text_view_button.setOnClickListener(text_view_button_listener); } private Button.OnClickListener button_listener=new Button.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub setTitle("click it"); } }; private Button.OnClickListener text_view_button_listener = new Button.OnClickListener() { public void onClick(View v) { Intent intent = new Intent(); intent.setClass(WidgetDemo.this, TextActivity.class); startActivity(intent); } }; }

manifest.xml里面的内容:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.widgetdemo" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".WidgetDemo" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="TextActivity"> </activity> </application> <uses-sdk android:minSdkVersion="4" /> </manifest>

Text.xml中的代码:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:text="This is TextView,you can input anything you want" android:id="@+id/text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16sp" android:padding="10dip" android:background="#cc0000" > </TextView> </LinearLayout>

TextActivity.java

package com.example.widgetdemo; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class TextActivity extends Activity{ /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTitle("ViewTextActivity"); setContentView(R.layout.text); find_and_modify_text_view(); } private void find_and_modify_text_view() { TextView text_view = (TextView) findViewById(R.id.text_view); CharSequence text_view_old = text_view.getText(); text_view.setText("modify:" + text_view_old + "\n It can be modified."); } }

运行结果:

常用的Android Widget组件学习①--Button and TextView常用的Android Widget组件学习①--Button and TextView常用的Android Widget组件学习①--Button and TextView

常用的Android Widget组件学习①--Button and TextView

具体的解释如下:

一、Button介绍和应用:

首先在这个项目的主界面放一个button,这需要在main.xml里面进行布局的设置,具体代码如下
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:text="This is a button" android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button> </LinearLayout>
代码解释:上述代码所示:在主界面中放有一个Button的按钮,并设置其宽度(layout_width)和高度(layout_height)都是根据内容(wrap_content)来调整,并设定其上面的显示文字是“This is a button”,其id的标识是button,运行界面如下:

常用的Android Widget组件学习①--Button and TextView
关于如何监听并响应button的单击事件,实现代码如下:
private void find_and_modify_button(){ Button button = (Button) findViewById(R.id.button); button.setOnClickListener(button_listener); }

代码解释:首先是通过Id获取模板中的button,然后使用setOnClickListener()方法设定其被单击的监听器为button_listener,下面还需要声明一下这个button_listener,实现代码如下:
private Button.OnClickListener button_listener=new Button.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub setTitle("click it"); } };

代码解释:上述的监听器的代码实现了button单击事件,这里用了一个setTitle将标题设置为“click it”,然后运行程序,单击按钮,就会出现下面运行结果:

常用的Android Widget组件学习①--Button and TextView

二、文本框(Textview)介绍和应用
接着上面创建的button例子项目,首先在在里面添加一个button,当这个按钮被点击的时候,显示用来讲解Textview的界面,首先现在main.xml中添加一个Button的组件,并设置其id为text_view_button,实现代码如下:
<Button android:text="TextView" android:id="@+id/text_view_button" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button>

代码解释:在主界面中放有一个Button的按钮,并设置其宽度(layout_width)和高度(layout_height)都是根据内容(wrap_content)来调整,并设定其上面的显示文字是“TextView”,其id的标识是text_view_button
然后在widgetdemo中添加对这个按钮的单击动作的监听和响应,当发生单击事件的时候,将打开TextView的演示界面,首先在find_and_modify_button方法里面添加获取text_view_button按钮的代码,如下:
Button text_view_button = (Button) findViewById(R.id.text_view_button); text_view_button.setOnClickListener(text_view_button_listener);
代码解释:
这里设置的监听器为text_view_button_listener,在单击的时候,需要打开新的界面,核心代码如下:
private Button.OnClickListener text_view_button_listener = new Button.OnClickListener() { public void onClick(View v) { Intent intent = new Intent(); intent.setClass(WidgetDemo.this, TextActivity.class); startActivity(intent); } };

代码解释:
当单击该button时,首先创建了一个Intent,然后调用其setClass方法设定其需要跳转的Ativitity,这里所要跳转的Activity也就是TextActivity,并且调用startActivity打开这个界面。
TextActivity需要我们创建,并在其上面显示一个TextView的组件,然后修改一下onCreate方法,让其绑定到指定的面板中。实现代码如下:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTitle("ViewTextActivity"); setContentView(R.layout.text); find_and_modify_text_view(); }

代码解释:我们将TextActivity关联到text.xml上,并且设置其title为ViewTextActivity,这里需要新建一个text.xml,并在其中添加一个TextView,实现代码如下:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:text="This is TextView,you can input anything you want" android:id="@+id/text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16sp" android:padding="10dip" android:background="#cc0000" > </TextView> </LinearLayout>


代码解释:这里就是设置一些基本属性,比如字体,颜色,padding表示组件周围空隙的大小,background设定其背景颜色
做完这一切后,我们还要把刚刚新建的TextActivity添加到manifest.xml文件的<application>域内,代码如下:
<activity android:name="TextActivity"> </activity>
最后运行这个项目,在主界面单击viewText按钮,可以看到如下结果:

常用的Android Widget组件学习①--Button and TextView

扩展学习:

TextView一般使用在需要显示一些信息的时候,其不能输入,只能初始设定或者在程序中修改,如果需要在程序中动态的修改这个值,那么就需要使用其Android:id的值,下面编写一个方法做一演示:代码如下:
private void find_and_modify_text_view() { TextView text_view = (TextView) findViewById(R.id.text_view); CharSequence text_view_old = text_view.getText(); text_view.setText("modify:" + text_view_old + "\n It can be modified."); }

代码解释:
首先使用findViewById将放在main.xml的那个TextView找出来,然后调用其自身的getText方法,将其原来的值取出来保存为text_view_old,然后再使用setText修改其自身的值,运行结果为:

常用的Android Widget组件学习①--Button and TextView
可以看出,动态修改textView的值非常直观和方便