我好像总是对控件情有独钟的O(∩_∩)O,近来就打算写写Android基础控件的使用,希望可以从中挖掘一些新的东西。
这次的例子是从EditText中输入文字,然后在TextView中同步显示,实现实时输入输出。关键就是用OnKeyListener监听EditText的键盘输入事件。
例子比较简单,直接上代码。main.xml布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <EditText android:id="@+id/input" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/output" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
主Activity程序:
package nbe.sense7.vinci.edittext; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.widget.EditText; import android.widget.TextView; public class EditTextDemoActivity extends Activity { private EditText editText; private TextView textView; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); editText = (EditText)findViewById(R.id.input); textView = (TextView)findViewById(R.id.output); //设置EditText按键输入时的事件 editText.setOnKeyListener(new EditText.OnKeyListener(){ @Override public boolean onKey(View arg0, int arg1, KeyEvent arg2) { // TODO Auto-generated method stub textView.setText(editText.getText()); return false; } }); } }
效果图如下:
从上图看,输入的是一个网址,却不会显示为一个可点击的链接。如果希望网址高亮显示出来并且可用,可以在TextView里加上Android:autoLink="all",如:
<TextView android:id="@+id/output" android:layout_width="fill_parent" android:layout_height="wrap_content" android:autoLink="all" />
效果图如下: