我目前在我的應用程序中有一大堆微調器。我沒有想太多,對於每一個微調,第一個索引填充了N/A
。這不是什麼大不了的事,但我希望能讓它變得更清潔。將微調器設置爲未選中
我想知道是否有一種方法,而不是調用setSelection(index)
,我想知道是否有一種方法來設置一個微調沒有選擇任何東西。
基本上,我希望微調器有一個在其中的項目列表,但沒有顯示它們,直到你點擊它。我也不想在那裏有一個空白的索引。
我認爲它很可能沒有辦法做到這一點,所以如果有人確定這一點,請讓我知道。
謝謝。
我目前在我的應用程序中有一大堆微調器。我沒有想太多,對於每一個微調,第一個索引填充了N/A
。這不是什麼大不了的事,但我希望能讓它變得更清潔。將微調器設置爲未選中
我想知道是否有一種方法,而不是調用setSelection(index)
,我想知道是否有一種方法來設置一個微調沒有選擇任何東西。
基本上,我希望微調器有一個在其中的項目列表,但沒有顯示它們,直到你點擊它。我也不想在那裏有一個空白的索引。
我認爲它很可能沒有辦法做到這一點,所以如果有人確定這一點,請讓我知道。
謝謝。
紡紗者必須具有選定的狀態。我會建議有一個「不選擇」選項
另一種選擇是讓底部按鈕被選中,然後將其設置爲不可見(我設置最後一個選擇的原因是,所以你沒有一大塊在您的應用程序空白爲看起來有點沒用的):
case SPINNER_OPTION_FIRST:
yourSpinnerLabel.setVisibility(View.VISIBLE);
yourTextField.setVisibility(View.VISIBLE);
break;
// do this for all your other ones if you want
case SPINNER_OPTION_LAST:
yourSpinnerLabel.setVisibility(View.GONE);
yourTextField.setVisibility(View.GONE);
也許不是最有效的,但它的作品,所以我希望幫助(仍然是新故切我一馬)!
它最好把第一個位置作爲空白,以便它可以被看作沒有選擇。
我試圖
// getSelectedItemPosition() returns -1 if there is nothing selected
spinner.setSelection(-1);
但失敗了[微調從列表中設置第1個要素。
我添加了「空白位置」來模仿「沒有選擇任何東西」的微調數據。請注意,'下拉'列表中不顯示'空位'。
順便說一句。對於C#抱歉,希望這個概念清晰可見。
定義適配器:
class CustomAdapter<T> : ArrayAdapter<T> {
public override int Count {
get { return base.Count - 1; }
}
}
初始化微調:
var data = new List<string> { "elem 1", "elem 2", "" };
spinner.Adapter = new CustomAdapter<String>(this, Resource.Layout.SimpleSpinnerItem, data);
spinner.SetSelection(2);
修改其保存數據可能會導致大量的錯誤或難以管理的數據的列表。 您可以使用NONE項目將適配器添加到適配器中,而不是操作該列表。 像這樣
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
adapter.add("NONE");
adapter.addAll(products);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner.setAdapter(adapter);
看到有:http://stackoverflow.com/questions/867518/how-to-make-an-android-spinner-with-initial-text-select-one –