十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
1、SearchView是搜索框組件,它可以讓用戶在文本框里輸入文字,通過監(jiān)聽器取得用戶的輸入,當(dāng)用戶點擊搜索時,監(jiān)聽器執(zhí)行實際的搜索。2、SearchView組件的常用方法如下:①setIconifiedByDefault(boolean iconified) === 設(shè)置搜索框默認是否自動縮小為圖標(biāo)。 ②setOnQueryTextListener(SearchView,OnQueryTextListener listener) === 為搜索框設(shè)置監(jiān)聽器 ③setSubmitButtonEnabled(boolean enabled) === 設(shè)置是否顯示搜索按鈕 ④setQueryHint(CharSequence hint) === 設(shè)置搜索框內(nèi)的默認顯示的提示文本3、為SearchView增加一個配套的ListView,則可以為其增加自動完成的功能,即ListView用于為SearchView顯示自動補齊列表4、具體實現(xiàn)代碼如下:package org.crazyit.ui;import android.os.Bundle; import android.text.TextUtils; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.SearchView; import android.widget.Toast; import android.app.Activity;public class SearchViewTest extends Activity implements SearchView.OnQueryTextListener { private SearchView sv; private ListView lv; // 自動完成的列表 private final String[] mStrings = { "aaaaa", "bbbbbb", "cccccc", "ddddddd" };@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); lv = (ListView) findViewById(R.id.lv); lv.setAdapter(new ArrayAdapterstring(this,android.R.layout.simple_list_item_1, mStrings)); lv.setTextFilterEnabled(true);//設(shè)置lv可以被過慮 sv = (SearchView) findViewById(R.id.sv); // 設(shè)置該SearchView默認是否自動縮小為圖標(biāo) sv.setIconifiedByDefault(false); // 為該SearchView組件設(shè)置事件監(jiān)聽器 sv.setOnQueryTextListener(this); // 設(shè)置該SearchView顯示搜索按鈕 sv.setSubmitButtonEnabled(true); // 設(shè)置該SearchView內(nèi)默認顯示的提示文本 sv.setQueryHint("查找"); }// 用戶輸入字符時激發(fā)該方法 @Override public boolean onQueryTextChange(String newText) { Toast.makeText(SearchViewTest.this, "textChange---" + newText, 1).show(); if (TextUtils.isEmpty(newText)) { // 清除ListView的過濾 lv.clearTextFilter(); } else { // 使用用戶輸入的內(nèi)容對ListView的列表項進行過濾 lv.setFilterText(newText); } return true; }// 單擊搜索按鈕時激發(fā)該方法 @Override public boolean onQueryTextSubmit(String query) { // 實際應(yīng)用中應(yīng)該在該方法內(nèi)執(zhí)行實際查詢 // 此處僅使用Toast顯示用戶輸入的查詢內(nèi)容 Toast.makeText(this, "您的選擇是:" + query, Toast.LENGTH_SHORT).show(); return false; } } /string

蕉城網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,蕉城網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為蕉城上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的蕉城做網(wǎng)站的公司定做!
android 搜索框就是一個EditText輸入控件,或者是EditText的子類
長度限制方式有以下幾種:
方法一:
在 xml 文件中設(shè)置文本編輯框?qū)傩宰髯址麛?shù)限制
如:android:maxLength="10" 即限制最大輸入字符個數(shù)為10
方法二:
在代碼中使用InputFilter 進行過濾
//editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)}); 即限定最大輸入字符數(shù)為20
示例代碼如下:
public?class?TextEditActivity?extends?Activity?{
/**?Called?when?the?activity?is?first?created.?*/
@Override
public?void?onCreate(Bundle?savedInstanceState)?{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText?editText?=?(EditText)findViewById(R.id.entry);
editText.setFilters(new?InputFilter[]{new?InputFilter.LengthFilter(20)});
}
}
方法三:
利用 TextWatcher 進行限制,TextWatcher是注冊一個內(nèi)存輸入的改變事件,當(dāng)你的輸入框輸入字符和刪除字符都會觸發(fā)
實現(xiàn)代碼如下:
package?cie.textEdit;
import?android.text.Editable;
import?android.text.Selection;
import?android.text.TextWatcher;
import?android.widget.EditText;
/*
*?監(jiān)聽輸入內(nèi)容是否超出最大長度,并設(shè)置光標(biāo)位置
*?*/
public?class?MaxLengthWatcher?implements?TextWatcher?{
private?int?maxLen?=?0;
private?EditText?editText?=?null;
public?MaxLengthWatcher(int?maxLen,?EditText?editText)?{
this.maxLen?=?maxLen;
this.editText?=?editText;
}
public?void?afterTextChanged(Editable?arg0)?{
//?TODO?Auto-generated?method?stub
}
public?void?beforeTextChanged(CharSequence?arg0,?int?arg1,?int?arg2,
int?arg3)?{
//?TODO?Auto-generated?method?stub
}
public?void?onTextChanged(CharSequence?arg0,?int?arg1,?int?arg2,?int?arg3)?{
//?TODO?Auto-generated?method?stub
Editable?editable?=?editText.getText();
int?len?=?editable.length();
if(len??maxLen)
{
int?selEndIndex?=?Selection.getSelectionEnd(editable);
String?str?=?editable.toString();
//截取新字符串
String?newStr?=?str.substring(0,maxLen);
editText.setText(newStr);
editable?=?editText.getText();
//新字符串的長度
int?newLen?=?editable.length();
//舊光標(biāo)位置超過字符串長度
if(selEndIndex??newLen)
{
selEndIndex?=?editable.length();
}
//設(shè)置新光標(biāo)所在的位置
Selection.setSelection(editable,?selEndIndex);
}
}
}
有關(guān)EditText 即Android輸入框的更多用法,建議查看官網(wǎng)API文檔
android studio全局搜索的方法:
1、使用快捷鍵?Ctrl + Shift + F來搜索
2、打開搜索框進行搜索
操作路徑:Edit - Find - Find?to open find search box.
android studio中常用的快捷鍵總結(jié):
一、搜索框/刪除框簡介
搜索框在手機桌面上方,當(dāng)拖動一個快捷方式圖標(biāo)時就會隱藏搜索框并且顯示刪除框.如下圖所示
二、搜索框/刪除框布局
屏幕上方的搜索和刪除框是在一個布局里,名稱為qsb_bar,位于res/layout-port/launcher.xml布局里,如果你的設(shè)備是橫屏的,那么在res/layout-land/launcher.xml布局里.
[java] view plain copy
!--圓形指示器 --
include
android:id="@+id/page_indicator"
layout="@layout/page_indicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" /
lt;!--搜索/刪除框 --
include
android:id="@+id/qsb_bar"
layout="@layout/qsb_bar" /
可以看到,是用include加載了一個布局,點進去看
[java] view plain copy
com.android.launcher3.SearchDropTargetBar
xmlns:android=""
style="@style/QSBBar"
android:focusable="false"
android:layout_width="match_parent"
android:layout_height="match_parent"
!-- Drag specific targets container --
LinearLayout
style="@style/SearchDropTargetBar"
android:id="@+id/drag_target_bar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
include
layout="@layout/drop_target_bar" /
/LinearLayout
/com.android.launcher3.SearchDropTargetBar
是一個自定義布局,類名為SearchDropTargetBar,后面再分析它。你會看到在這個布局里又include了一個布局,我們追究到底,點進去
[java] view plain copy
merge xmlns:android=""
FrameLayout
xmlns:android=""
style="@style/DropTargetButtonContainer"
android:layout_weight="1"
!-- Delete target --
com.android.launcher3.DeleteDropTarget
style="@style/DropTargetButton"
android:id="@+id/delete_target_text"
android:text="@string/delete_zone_label_workspace"
android:drawableStart="@drawable/remove_target_selector" /
/FrameLayout
FrameLayout
xmlns:android=""
style="@style/DropTargetButtonContainer"
android:layout_weight="1"
!-- Info target --
com.android.launcher3.InfoDropTarget
style="@style/DropTargetButton"
android:id="@+id/info_target_text"
android:text="@string/info_target_label"
android:drawableStart="@drawable/info_target_selector" /
/FrameLayout
/merge