我好像總是對控件情有獨鍾的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" />
效果圖如下: