本文主要收錄一些還算生僻的UI控件肿嘲,也是為了自己忘記的時(shí)候方便查看吧宪潮。
目錄:
- 1.AutoCompleteTextView
- 2.MultiAutoCompleteTextView
- 3.ToggleButton
- 4.RatingBar
1.AutoCompleteTextView
AutoCompleteTextView是一個(gè)自動(dòng)匹配文本內(nèi)容的控件,當(dāng)你輸入的內(nèi)容與數(shù)據(jù)源里面的數(shù)據(jù)匹配時(shí)贪惹,就會(huì)以列表的形式提示出來(lái)
它的主要屬性有completionThreshold舌剂,表示輸入多少個(gè)字符時(shí)會(huì)出現(xiàn)提示请垛。(比如:android:completionThreshold="1")
使用步驟如下:
① 定義好completionThreshold屬性
② 要有一個(gè)適配器,作為提示的數(shù)據(jù)源
③ AutoCompleteTextView對(duì)象調(diào)用setAdapter方法綁定數(shù)據(jù)
public class MainActivity extends AppCompatActivity {
private ArrayAdapter<String> arrayAdapter;
private AutoCompleteTextView autoCompleteTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.auto);
String data[] = {"what","hello", "how", "happy", "haha"};
autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, data);
autoCompleteTextView.setAdapter(arrayAdapter);
}
2.MultiAutoCompleteTextView
MultiAutoCompleteTextView有點(diǎn)類(lèi)似于AutoCompleteTextView见咒,但它還支持多次匹配
它還多了一個(gè)setTokenizer方法偿衰,可以設(shè)置分隔符。用法也與AutoCompleteTextView差不多改览。
//.xml布局文件里設(shè)置一個(gè)MultiAutoCompleteTextView控件的代碼
<MultiAutoCompleteTextView
android:hint="請(qǐng)輸入要發(fā)送的對(duì)象"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/multiAutoCompleteTextView" />
//在MainActivity里實(shí)現(xiàn)的代碼
public class MainActivity extends AppCompatActivity {
private ArrayAdapter<String> arrayAdapter;
private MultiAutoCompleteTextView multiAutoCompleteTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.auto);
String data[] = {"343028402@qq.com", "292500222@qq.com", "489103913@qq.com", "401804928@qq.com"};
arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, data);
multiAutoCompleteTextView = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView);
multiAutoCompleteTextView.setAdapter(arrayAdapter);
multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
3.ToggleButton
ToggleButton是多狀態(tài)按鈕下翎,它有選中和未選中兩種狀態(tài)
它的主要屬性有textOn(選中狀態(tài)下顯示的文字,默認(rèn)為on)宝当,textOff(未選中狀態(tài)下顯示的文字视事,默認(rèn)為off),checked(設(shè)置狀態(tài)庆揩,默認(rèn)為false)俐东。狀態(tài)的監(jiān)聽(tīng)器為OnCheckedChangeListener,所以可以通過(guò)setOnCheckedChangeListener來(lái)做相關(guān)邏輯處理订晌。這里我再用一個(gè)ImageView來(lái)代表它的狀態(tài)虏辫,選中時(shí)顯示一張圖片,未選中時(shí)顯示另一張圖片锈拨。
4.RatingBar
RatingBar類(lèi)似于星星評(píng)分的控件砌庄,繼承ProgressBar,除了ProgressBar的屬性外還有特有屬性奕枢,監(jiān)聽(tīng)器為OnRatingBarChangeListener
特有屬性:
android:isIndicator:是否用作指示娄昆,用戶無(wú)法更改,默認(rèn)false
android:numStars:顯示多少個(gè)星星验辞,必須為整數(shù)稿黄,默認(rèn)為5個(gè)。
android:rating:默認(rèn)評(píng)分值跌造,必須為浮點(diǎn)數(shù)杆怕。
android:stepSize: 評(píng)分每次增加的值,必須為浮點(diǎn)數(shù)壳贪。
布局代碼:
Java代碼:
初始效果:
設(shè)置rating之后:
要想自定義星星的樣式陵珍,自定義style文件即可。比如:
星條的drawable資源layer-list圖層:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background"
android:drawable="@drawable/rating_off"/>
<item android:id="@android:id/progress"
android:drawable="@drawable/rating_on"/>
</layer-list>
在values文件夾下styles.xml文件中添加style:
<style name="roomRatingBar_1" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/ratingbar_layer</item>
<item name="android:minHeight">24dip</item>
<item name="android:maxHeight">24dip</item>
</style>