Trong Android 1.6, khi nhấn vào một spinner (menu thả xuống), các nút radio xuất hiện bên cạnh các tùy chọn spinner. Làm cách nào để xóa các nút radio đó để chỉ văn bản tùy chọn vẫn còn?Android Spinner - Cách xóa nút radio?
Trả lời
Chỉ cần xóa các nút radio, bạn không cần lớp bộ điều hợp riêng của mình.
Tạo một dropdown_item.xml trong cách bố trí
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerDropDownItemStyle"
android:singleLine="true"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:ellipsize="marquee" />
sau đó thực hiện cuộc gọi sau đây trong các mã.
arrayAdapter.setDropDownViewResource(R.layout.dropdown_item);
Mục thả xuống spinner mặc định là CheckedTextView có nút radio. Ở đây bạn thay thế nó bằng một TextView.
Nếu bạn muốn loại bỏ các nút radio trên danh sách spinner, bạn phải cung cấp bố cục riêng cho hàng.
Hãy xem ví dụ dưới đây:
package com.ramps;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.SpinnerAdapter;
public class MySpinner extends Activity {
//data that will be used as a spinner options
private static String data[] = {"one", "two", "three"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//main.xml file contains spinner
setContentView(R.layout.main);
Spinner spinner = (Spinner) findViewById(R.id.spinner);
//create your own adapter
MySpinnerAdapter adapter = new MySpinnerAdapter(this,R.layout.custom_spinner_row,R.id.text, data);
//set your custom adapter
spinner.setAdapter(adapter);
}
private class MySpinnerAdapter extends ArrayAdapter{
public MySpinnerAdapter(Context context, int resource,
int textViewResourceId, String[] objects) {
super(context, resource, textViewResourceId, objects);
}
}
}
Cách bố trí tùy chỉnh cho hàng spinner chỉ là một LinearLayout đơn giản với một yếu tố TextView đó id là "văn bản" (android: id = "@ + id/text ")
Đây chỉ là ví dụ đơn giản. Nếu bạn cần bố trí ưa thích hơn là chỉ TextView, bạn có lẽ sẽ phải ghi đè lên phương thức getView() của MySpinnerAdapter.
Bạn có thể sử dụng cách bố trí android
android.R.layout.simple_spinner_item
thay vì
android.R.layout.simple_spinner_dropdown_item
nhưng tôi khuyên bạn nên @kimkunjj câu trả lời, nó sẽ cung cấp cho bạn sự kiểm soát của bố cục.
"android.R.layout.simple_spinner_item" không được công việc,
lập trình đó là:
modeSpinner=new Spinner(layout.getContext());
ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(layout.getContext(),
android.R.layout.simple_spinner_item, Arrays.asList(modes));
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
Cách "sạch" để làm điều này (chỉ cần loại bỏ các dấu kiểm và không liên lạc anythinbg khác bao gồm kiểu văn bản, kích thước mục, vv) là tạo bộ điều hợp tùy chỉnh (như trong các câu trả lời ở trên):
public class SimpleSpinnerArrayAdapter extends ArrayAdapter<String> {
public SimpleSpinnerArrayAdapter(Context context, String[] data) {
super(context, android.R.layout.simple_spinner_item, data);
this.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
}
public SimpleSpinnerArrayAdapter(Context context, List<String> data) {
super(context, android.R.layout.simple_spinner_item, data);
this.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
}
/**
* Returns default dropdown view with removed checkbox
*/
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View view = super.getDropDownView(position, convertView, parent);
if (view != null && view instanceof CheckedTextView) {
((CheckedTextView) view).setCheckMarkDrawable(null);
}
return view;
}
}
Hãy lưu ý getDropDownView()
phương thức trả về chế độ xem cho mục danh sách thả xuống. Bạn có thể sử dụng bất kỳ chế độ xem tùy chỉnh nào ở đây nhưng nếu bạn muốn gắn vào chế độ xem mặc định, bạn có thể nên sử dụng mã ở trên.
Nếu bạn đã đưa thư viện hỗ trợ Android phiên bản 18 trở lên vào dự án của mình thì bạn có thể thay thế id tài nguyên simple_spinner_dropdown_item
bằng support_simple_spinner_dropdown_item
. Điều đó sẽ loại bỏ nút radio.
sử dụng simple_dropdown_item_1line
- 1. Android: Mở Spinner từ Nút
- 2. ActionBarSherlock hiển thị màu sai và nút radio trên thanh điều hướng thả xuống spinner
- 3. Android: đặt các nút radio ngang
- 4. Cách chọn nút radio?
- 5. Phong cách android spinner
- 6. Nhóm nút radio và radio
- 7. Cách thêm nút radio trong nhóm nút?
- 8. kiểm tra nút radio android sau khi xóa vấn đề kiểm tra
- 9. Nút xóa Android động
- 10. Xóa lựa chọn thả xuống trên nút radio nhấp
- 11. Android - Tùy chỉnh tiện ích Spinner Nhìn và cảm nhận
- 12. Nút radio Angularjs
- 13. Android nhận giá trị của nút radio đã chọn
- 14. Cách kiểm tra nhiều nút radio, nút radio có cùng tên?
- 15. Cách nhận giá trị của Nút radio?
- 16. Hình nền nút radio
- 17. Nút radio Yii
- 18. Cách ghi đè onClick trên Android Spinner?
- 19. Android: hai Spinner onItemSelected()
- 20. CakePHP tạo các nút radio
- 21. Nút radio Bootstrap Bỏ chọn
- 22. Các nút radio trên Rails
- 23. Nút radio Dao cạo MVC
- 24. Cách tùy chỉnh nút radio tùy chọn danh sách
- 25. Ringtone chọn - nút radio thiết
- 26. Nút radio gắn kết WinForm
- 27. cách đính kèm một người nghe vào nút radio
- 28. Thay đổi nút radio ASP.NET
- 29. Nhãn cài đặt Android cho spinner
- 30. Cách vẽ hình ảnh ở giữa nút Radio
Tốt và đơn giản! – Bruiser
Có phải là 'android: id = "@ android: id/text1" 'không? – cprcrack