<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="帳號" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:password="true"
android:hint="密碼" />
執行結果:
輸入後的結果:
AutoCompleteTextView同樣也是能夠給使用者輸入資料,不過它能夠提供自動提示的輸入功能,例如當輸入a的時候就會跑出apple、address、alert等等的提示,下面是xml檔和執行的結果圖。
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="你最喜歡的程式語言是什麼?" />
<AutoCompleteTextView
android:id="@+id/autoCompleteTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
AutoCompleteTextView要有自動提示的文字必須要自己手動加入,這些文字可以在xml檔加入也可以在程式碼當中加入,下面是程式碼範例:
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.*;
public class MainActivity extends Activity {
final String[] language = {"C","C++","C#","Java","VB","JSP","Android","ASP.NET","PHP","Python"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.select_dialog_item,language);
AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView) findViewById
(R.id.autoCompleteTextView);
autoCompleteTextView.setThreshold(1);
autoCompleteTextView.setAdapter(adapter);
}
}
上面的程式範例中將想顯示的自動提示放入陣列中,並使用ArrayAdapter進行實作,ArrayAdapter能夠儲存字串陣列並且放入Android的List物件,最後setThreshold這個屬性是用來設定輸入多少字元會出現提示的文字,在範例中設定的值是1,因此輸入第一個字元之後就會有提示的文字,setAdapter是用來設定使用哪個ArrayAdapter。
MultiAutoCompleteTextView與AutoCompleteTextView都具有自動提示的功能,不同的地方是允許多個值可以自動提示的功能,程式的寫法與AutoCompleteTextView差不多,不過加入了一個分隔符號的屬性setTokenizer設定每個值之間的分隔符號。
new MultiAutoCompleteTextView.CommaTokenizer()是指英文的,號當作MultiAutoCompleteTextView的分隔符號,下面是程式碼範例與結果圖:
xml檔:
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="你最喜歡的程式語言是什麼?" />
<MultiAutoCompleteTextView
android:id="@+id/multiAutoCompleteTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
程式碼:
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.*;
public class MainActivity extends Activity {
final String[] language = {"C","C++","C#","Java","VB","JSP","Android","ASP.NET","PHP","Python"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.select_dialog_item,language);
MultiAutoCompleteTextView multiAutoCompleteTextView = (MultiAutoCompleteTextView) findViewById
(R.id.multiAutoCompleteTextView);
multiAutoCompleteTextView.setThreshold(1);
multiAutoCompleteTextView.setAdapter(adapter);
multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
}
除了上面介紹了這些輸入的類別之外Android還提供下拉式選單spinner,寫法跟前面所介紹的差不多,非常的簡單使用。
xml檔:
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="你最喜歡的程式語言是什麼?" />
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
主程式:
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.*;
public class MainActivity extends Activity {
final String[] language = {"C","C++","C#","Java","VB","JSP","Android","ASP.NET","PHP","Python"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item,language);
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setAdapter(adapter);
}
}
沒有留言:
張貼留言