一個有一串名字的清單(ListView)
因為太長 想找某個項目要一直滑動很麻煩
目的:
在畫面上方放一個搜尋用的edittext,打第一個字就跑出搜尋選項,
然後點下選項後跑到該項
XML:
使用AutoCompleteTextView,其他無特別之處
程式碼:
//前略 public class AutoText extends Activity { //宣告要用的清單字串陣列 String[] namelist; //宣告AutoCompleteTextView AutoCompleteTextView myAutoCompleteTextView; /*--------------------------*/ /*然後把資料丟到陣列裡*/ /*--------------------------*/ @Override public void onCreate(Bundle savedInstanceState) { //清單建立 ListView list = (ListView)findViewById(R.id.nameListView); //中略 //快速搜尋 //把namelist丟到一個ArrayAdapter,android.R.layout.simple_dropdown_item_1line是內建的一行用xml ArrayAdapter<String> qsadapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,namelist); //建立AutoCompleteTextView myAutoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.qstextview); //把內容丟進去 myAutoCompleteTextView.setAdapter(qsadapter); //聚焦於第一行,不做這行也沒差 myAutoCompleteTextView.setThreshold(1); //快速搜尋點擊事件 myAutoCompleteTextView.setOnItemClickListener(new OnItemClickListener(){ public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { //搜尋namelist,取得選項位置 //從頭迴圈到尾,若內容等於所點項目則聚焦到該項 //這裡可能有更好的搜尋法 for(int i=0;i<namelist.length;i++){ if(myAutoCompleteTextView.getText().toString().equals(namelist[i].toString())==true){ list.setSelection(i); } } } });
沒有留言:
張貼留言