您的位置:首页 > 移动开发 > Android开发

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

2010-08-05 12:26 423 查看
今天一上午做了一个关于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.");
	}

}


运行结果:



















具体的解释如下:

一、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,运行界面如下:



关于如何监听并响应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”,然后运行程序,单击按钮,就会出现下面运行结果:







二、文本框(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按钮,可以看到如下结果:



扩展学习:



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修改其自身的值,运行结果为:



可以看出,动态修改textView的值非常直观和方便
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐