前面已经学习活动的显示跳转及隐式跳转,也学习 TextView 及 Button 两个控件的使用,下面我们来学习 EditText的使用:
EditText 是程序用于和用户进行交互的另一个重要控件,它允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理。EditText 的应用场景应该算是非常普遍了,发短信、发微博、聊QQ 等等,在进行这些操作时,你不得不使用到EditText。那我们来看一看如何在界面上加入EditText 吧,修改activity_main.xml 中的代码,如下所示:
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
- ……
- <EditText
- android:id="@+id/edit_text"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- />
- </LinearLayout>
注意,这里添加了这句
- android:orientation="vertical"
我们还可以结合使用EditText 与Button 来完成一些功能,比如通过点击按钮来获取EditText 中输入的内容。这里,我们就使用这两个控件,实现输入号码并拨号的功能,修改MainActivity 中的代码,如下所示:
- package cn.com.qiang.calldemo;
- import android.net.Uri;
- import android.os.Bundle;
- import android.app.Activity;
- import android.content.Intent;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.EditText;
- public class MainActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- Button button1 = (Button)findViewById(R.id.button1);
- button1.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- Intent intent = new Intent();
- intent.setAction(Intent.ACTION_CALL);
- EditText et = (EditText)findViewById(R.id.et);
- String s = et.getText().toString();
- intent.setData(Uri.parse("tel:"+s));
- startActivity(intent);
- }
- });
- }
- }
首先通过findViewById()方法得到EditText 的实例,然后在按钮的点击事件里调用EditText 的getText()方法获取到输入的内容,再调用toString()方法转换成字符串,最后仍然还是老方法,使用Toast 将输入的内容显示出来。
但要注意
- intent.setAction(Intent.ACTION_CALL);
及
- intent.setData(Uri.parse("tel:"+s));
是我们拨打电话的固定格式,后面会进行详解。
下面实现实例: