spinnerandroid
⑴ android 的spinner是一個什麼作用的控制項
可以使用Button加ListPopupWindow實現和spinner一樣的效果,並且可以監聽到點擊事件(Spinner是不能設置點擊事件的)
布局文件,只有一個button
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent" >
<Button
android:id="@+id/button"
android:layout_width="100dp"
android:layout_height="50dp"
/>
</LinearLayout>
代碼
public class MainActivity extends Activity {
private Button button;
private ListPopupWindow popupWindow;
private List<String> strings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
strings = new ArrayList<String>();
strings.add("item1");
strings.add("item2");
strings.add("item3");
button = (Button)findViewById(R.id.button);
popupWindow = new ListPopupWindow(this);
popupWindow.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,strings));
popupWindow.setAnchorView(button);
popupWindow.setWidth(LayoutParams.WRAP_CONTENT);
popupWindow.setHeight(LayoutParams.WRAP_CONTENT);
popupWindow.setModal(true);
popupWindow.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
button.setText(strings.get(position));
popupWindow.dismiss();
}
});
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
popupWindow.show();
}
});
}
}
⑵ 怎麼實現Android的Spinner控制項不可編輯
spinner 是View的子類,View 有個屬性android:clickable=false 就是設置控制項不可點擊
關於Spinner的實例代碼:
新建一個android工程,名稱為Spinner。同時建一個Activity,名稱為SpinnerActivity。
修改res/layout/main.xml
⑶ android中spinner顏色特別淡根本看不清怎麼辦
自定義adapter返回自己的item view
修改spinner樣式
刪掉android:textColor="#FFFFFF"
⑷ 怎麼改變android spinner下拉列表的寬度
設置spinner下拉菜單的寬度可在布局文件中添加如下語句:
android:dropDownWidth="100dp"
其中,100dp就是下拉菜單的寬度值,單位為像素。
Spinner控制項是一種列表類型的控制項,它的繼承關系如下:
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.AdapterView<Textends android.widget.Adapter>
↳ android.widget.AbsSpinner
↳ android.widget.Spinner
android.widget.Spinner繼承了android.view.ViewGroup類。⑸ android spinner的用法請教
可以用ArrayAdapter實現。
給你你個思路吧:
List<ShangPin> spList=new ArrayList<ShangPin>(); //商品類中有兩個屬性 :物品的名稱,物 品的url;
List<String> data=new ArrayList<String>(); //這個List用來裝 物品的名稱
for (int i = 0; i < spList.size(); i++) {
data.add(spList.get(i).getSpName()); //getSpName() 物品的名稱的get方法
}
sp.setAdapter(new ArrayAdapter<String>(RegisterActivity.this, android.R.layout.simple_spinner_item, data)); //設置Adapter
//設置監聽事件
sp_sheng.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent,
View view, int position, long id) {
TextView tv=(TextView) view; //這里的view是TextView類型的 , 自己可以打出來看看
for (int i = 0; i < spList.size(); i++) { //循環商品類的List
if(spList.get(i).getSpName().equals(tv.getText())){ //判斷選中項在List中對應的商品類
String uri= result.get(i).getUri(); //這樣就可以拿到Uri了
}
。。。。。。 拿到了Uri那就做自己想做的事去吧⑹ Android Spinner布局
spinner.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener(){
@Override
publicvoidonItemSelected(AdapterView<?>parent,Viewview,intposition,longid){
//選中哪一個(position)後進行的操作
}
@Override
publicvoidonNothingSelected(AdapterView<?>parent){
}
});⑺ android spinner怎麼用
android中的spinner控制項是表示下拉菜單的意思,按照如下步驟使用:
1、首先使用Android studio創建一個項目,如下圖:
4、最後去類中綁定控制項,並添加數據即可使用。
⑻ android Spinner控制項 選擇後為什麼會自動彈到界面頂部
我今天也遇到這個問題了
開始以為當spinner在scrollview時 存在android版本兼容問題
於是改成了popupwindow 比spinner麻煩好多 頁面有多個EditText用於彈出popupwindow展示不同的下拉數據 點擊TextView要記錄當前的EditText當點擊popupwindow的列表項關閉popupwindow時要取到數據手動調用之前記錄的EditText的setttext方法
而用spinner 這一切都是自動的
前面都是廢話 結果用popupwindow實現完後還是一樣 會自動滾動到頂部 這時才仔細分析問題原因
原來是在點擊EditText(設置了clickable=true;focusable=false)彈出spinner/popupwindow時焦點在頁面外的EditText上 ,於是關閉spinner/popupwindow時頁面自動滾動到獲取焦點的EditText
解決方法很簡單 在focusable=false的EditText的點擊事件里去掉焦點
if (getCurrentFocus()!=null) {
getCurrentFocus().clearFocus();
}