文本框跟编辑框很类似。所以只对编辑框给出示例。
第一步,还是创建android项目。
第二步。修改已经生成的res/layout/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的布局 -->
- <Button
- android:id="@+id/button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:gravity="right"
- android:text="这是button"/>
- <!-- 定义第二个button的布局 -->
- <Button
- android:id="@+id/edit_view_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="EditView"/>
- </LinearLayout>
注释已经说明每项的定义。具体参数的含义请参考上一篇:http://blog.csdn.net/applezhengxd/archive/2010/05/06/5562199.aspx
第三步,
修改自动生成的java类,替换内容为:
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- public class TextView extends Activity implements OnClickListener {
- //定义button
- Button button = null;
- Button edit_view_button = null;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- find_and_modif_button();
- }
- private void find_and_modif_button(){
- //根据ID获得XML定义的Button
- button = (Button)findViewById(R.id.button);
- button.setOnClickListener(this);
- edit_view_button =(Button)findViewById(R.id.edit_view_button);
- edit_view_button.setOnClickListener(this);
- }
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- //事件监听
- if(v == button){
- setTitle("我是button");
- }else if(v == edit_view_button){
- Intent intent = new Intent();
- intent.setClass(TextView.this,EditTextActivity.class);
- startActivity(intent);
- }else{
- //其他处理
- }
- }}
第四步,
新建控制editView的XML:editview.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">
- <!-- 定义编辑框的布局 -->
- <EditText
- android:id="@+id/edit_text"
- android:text="请输入内容!"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
- </EditText>
- <!-- 定义按钮的布局 -->
- <Button
- android:id="@+id/get_edit_view_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="获取EditView的值">
- </Button>
- </LinearLayout>
第五步,
新建编辑框监听类:EditTextActivity
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.EditText;
- public class EditTextActivity extends Activity implements OnClickListener{
- EditText edit_text = null;
- CharSequence edit_text_value = null;
- Button get_edit_view_button = null;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setTitle("ViewTextActivity");
- setContentView(R.layout.editview);
- //根据ID获得XML定义的editView
- get_edit_view_button = (Button) findViewById(R.id.get_edit_view_button);
- get_edit_view_button.setOnClickListener(this);
- edit_text = (EditText) findViewById(R.id.edit_text);
- edit_text.setOnClickListener(this);
- }
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if(v == get_edit_view_button){
- edit_text_value = edit_text.getText();
- setTitle("EditText的值:" + edit_text_value);
- }else if(v == edit_text){
- if(edit_text.getText().toString().equals("请输入内容!")){
- edit_text.setText("");
- }
- }
- }
- }
第六步,
也是最重要的一步,因为我们新建了一个Activity,所以要对这个Activity进行加载。在AndroidManifest.xml的
application标签内加入
<activity android:name="EditTextActivity">
</activity>
这段代码,结果如下:
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.testview"
- android:versionCode="1"
- android:versionName="1.0">
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <activity android:name=".TextView"
- 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="EditTextActivity">
- </activity>
- </application>
- </manifest>
至此。整个例子就可以顺利运行了
小结:
不难看出,使用xml进行布局方便快捷、思路清晰。这个例子中用到了两个Activity,实现了他们之间的调用关系,
尤其需要注意的是在AndroidManifest.xml中添加了新Activity的类名。不然程序会报错。