我好像總是對控制項情有獨鐘的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" />
如下: