我目前在我的应用程序中有一大堆微调器.我没有多想,每个微调器,第一个索引都充满了N/A.这不是什么大问题,但我希望能让它变得更清洁.
我想知道是否有一种方式而不是调用setSelection( index ),我想知道是否有办法设置Spinner没有选择任何东西.
基本上,我希望微调器有一个项目列表,但在你点击它之前不会显示它们.我也不希望顶部有空白索引.
我认为很可能没有办法做到这一点,所以如果有人确定这一点,请告诉我.
谢谢.
我有一个Android Spinner小部件,我想在第一个项目中显示一个略有不同的字符串,如果它被选中,如果它显示在下拉列表中.例如,单击
[Select a dessert... v]
Run Code Online (Sandbox Code Playgroud)
弹出:
o No dessert
Cake
Pie
Ice cream
Run Code Online (Sandbox Code Playgroud)
如果选择"Cake",则Spinner表现正常:
[Cake v]
Run Code Online (Sandbox Code Playgroud)
但如果选择"No dessert",Select a dessert...则应将其用作Spinner提示,如同未选择任何内容时一样.
最简单的方法是什么?
我有一个自定义微调器我有一个提示标签位于我的数组(微调器)的最后位置,所以要显示它我将选择设置到最后一个位置,如下所示:
ArrayAdapter myAdapter = new MySpinnerAdapter(this,R.layout.spinner_item,createMyList());
myAdapter.setDropDownViewResource(spinner_item);
mySpinner.setAdapter(subCategoryAdapter);
mySpinner.setSelection(myList.size() - 1);
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但是当我触摸Spinner来选择一个项目时,由于我的setSelection,滚动它会"聚焦"微调器的底部.
如何关注微调器的第一项或"滚动"到它的顶部?
谢谢!
我使用json中的适配器数据创建微调器.但是为什么微调器没有显示文本而在选择值时不显示.有人可以帮帮我.
微调
<Spinner android:id="@+id/spinCity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="15dp"
android:textColor = "#000000"
android:prompt="@string/city_prompt"
/>
Run Code Online (Sandbox Code Playgroud)
为旋转器加载json.
cityItems = new ArrayList<City>();
cityNames = new ArrayList<String>();
JsonObjectRequest jsonReq = new JsonObjectRequest(
AppConfig.URL_CITY, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
VolleyLog.d(TAG, "Response: " + response.toString());
if (response != null) {
try {
JSONArray feedArray = response.getJSONArray("result");
for (int i = 0; i < feedArray.length(); i++) {
JSONObject feedObj = (JSONObject) feedArray.get(i);
City item = new City();
item.setId(feedObj.getInt("id"));
item.setCity(feedObj.getString("city"));
cityItems.add(item);
cityNames.add(feedObj.getString("city"));
}
} …Run Code Online (Sandbox Code Playgroud) 数据库中 Spinner 的值。我很困惑为 Spinner 添加提示,我关注了 SO 中的一些帖子,但我对这个地方感到震惊,我尝试了这个
Spinner sp = (Spinner)findViewById(R.id.spinner);
sp.setSelection(pos);
Run Code Online (Sandbox Code Playgroud)
位置有整数值,所以我把它作为位置的整数值,我也尝试在 setSeletction() 方法中使用 getCount()
主程序
//spinner for customer
sp=(Spinner)findViewById(R.id.spinner);
adapter=new ArrayAdapter<String>(this,R.layout.spinner_layout,R.id.txt,listItems);
sp.setAdapter(adapter);
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sales_order);
cus_name = (Spinner) findViewById(R.id.spinner);//customer spinner
// Permission StrictMode
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
//spinner for customer
sp=(Spinner)findViewById(R.id.spinner);
adapter=new ArrayAdapter<String>(this,R.layout.spinner_layout,R.id.txt,listItems);
sp.setAdapter(adapter);
}
private class BackTask extends AsyncTask<Void,Void,Void> {
ArrayList<String> list;
protected void onPreExecute(){
super.onPreExecute();
list=new ArrayList<>();
}
protected Void doInBackground(Void...params){
InputStream is=null;
String …Run Code Online (Sandbox Code Playgroud)