如何在中心设置微调器文本并设置分隔线
how to set spinner text in center and set divider also
我想设置一个微调器文本中心并设置一个分隔线。中心文本设置和分隔线设置有问题。此外,微调项和微调值来自服务器 json。
这是我的代码:
XML:
<Spinner
android:id="@+id/txtSpinner"
android:layout_width="fill_parent"
style="@android:style/Widget.Holo.Light.Spinner"
android:dropDownVerticalOffset="28dp"
android:gravity="center_horizontal"
android:textAlignment="center"
android:layout_height="45dp"
/>
Java代码:
private void getSpinnerData() {
final ProgressDialog loading = ProgressDialog.show(this, "Loading Data", "Please wait...", false, false);
loading.setCancelable(true);
StringRequest stringRequest = new StringRequest(spinner_url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
loading.dismiss();
JSONObject j_obj = null;
try {
j_obj = new JSONObject(response);
result = j_obj.getJSONArray("data");
getdata(result);
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
private void getdata(JSONArray j) {
for (int i = 0; i < j.length(); i++) {
try {
JSONObject json = j.getJSONObject(i);
spinnerlist.add(json.getString("category"));
} catch (JSONException e) {
e.printStackTrace();
}
}
//Setting adapter to show the items in the spinner
txtSpinner.setAdapter(new ArrayAdapter<String>(TextActivity.this, android.R.layout.simple_spinner_dropdown_item, spinnerlist));
}
当前输出
我想要的
您可以自定义微调器以使其随心所欲。如果只想设置分频器,只需要自定义spinner_dropdown_item.xml with divider.
我的答案在这里有效.....
创建新样式
<style name="ThemeName" parent="@android:style/Widget.Holo.Light.Spinner">
<item name="android:dropDownListViewStyle">@style/mySpinnerStyle</item>
</style>
<style name="mySpinnerStyle" parent="@style/Widget.AppCompat.Spinner.Underlined">
<item name="android:divider">#000</item>
<item name="android:dividerHeight">1dp</item>
</style>
我想设置一个微调器文本中心并设置一个分隔线。中心文本设置和分隔线设置有问题。此外,微调项和微调值来自服务器 json。
这是我的代码:
XML:
<Spinner
android:id="@+id/txtSpinner"
android:layout_width="fill_parent"
style="@android:style/Widget.Holo.Light.Spinner"
android:dropDownVerticalOffset="28dp"
android:gravity="center_horizontal"
android:textAlignment="center"
android:layout_height="45dp"
/>
Java代码:
private void getSpinnerData() {
final ProgressDialog loading = ProgressDialog.show(this, "Loading Data", "Please wait...", false, false);
loading.setCancelable(true);
StringRequest stringRequest = new StringRequest(spinner_url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
loading.dismiss();
JSONObject j_obj = null;
try {
j_obj = new JSONObject(response);
result = j_obj.getJSONArray("data");
getdata(result);
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
private void getdata(JSONArray j) {
for (int i = 0; i < j.length(); i++) {
try {
JSONObject json = j.getJSONObject(i);
spinnerlist.add(json.getString("category"));
} catch (JSONException e) {
e.printStackTrace();
}
}
//Setting adapter to show the items in the spinner
txtSpinner.setAdapter(new ArrayAdapter<String>(TextActivity.this, android.R.layout.simple_spinner_dropdown_item, spinnerlist));
}
当前输出
我想要的
您可以自定义微调器以使其随心所欲。如果只想设置分频器,只需要自定义spinner_dropdown_item.xml with divider.
我的答案在这里有效.....
创建新样式
<style name="ThemeName" parent="@android:style/Widget.Holo.Light.Spinner">
<item name="android:dropDownListViewStyle">@style/mySpinnerStyle</item>
</style>
<style name="mySpinnerStyle" parent="@style/Widget.AppCompat.Spinner.Underlined">
<item name="android:divider">#000</item>
<item name="android:dividerHeight">1dp</item>
</style>