Có thể điền các tùy chọn của Spinner ngay trong bố cục xml không? This page cho thấy tôi nên sử dụng một ArrayAdapter? Dường như vụng về không thể làm được điều đó ..Populating spinner trực tiếp trong bố cục xml
Trả lời
Tôi không chắc chắn về điều này, nhưng hãy cho nó một shot.
Trong strings.xml bạn xác định:
<string-array name="array_name">
<item>Array Item One</item>
<item>Array Item Two</item>
<item>Array Item Three</item>
</string-array>
Trong bố cục của bạn:
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:entries="@array/array_name"
/>
Tôi đã nghe điều này không phải lúc nào cũng làm việc trên các nhà thiết kế, nhưng nó biên dịch tốt.
Xác định này Trong bạn String.xml nộp và tên của mảng là như bạn muốn như Trọng lượng
<string-array name="Weight">
<item>Kg</item>
<item>Gram</item>
<item>Tons</item>
</string-array>
và mã này trong bạn Layout.xml
<Spinner
android:id="@+id/fromspin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:entries="@array/Weight"
/>
Trong Bạn java file getactivity được sử dụng trong phân đoạn nếu bạn viết mã đó vào hoạt động sau đó loại bỏ getactivity
a = (Spinner) findViewById(R.id.fromspin);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this.getActivity(),
R.array.weight, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
a.setAdapter(adapter);
a.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
if (a.getSelectedItem().toString().trim().equals("Kilogram")) {
if (!b.getText().toString().isEmpty()) {
float value1 = Float.parseFloat(b.getText().toString());
float kg = value1;
c.setText(Float.toString(kg));
float gram = value1 * 1000;
d.setText(Float.toString(gram));
float carat = value1 * 5000;
e.setText(Float.toString(carat));
float ton = value1/908;
f.setText(Float.toString(ton));
}
}
public void onNothingSelected(AdapterView<?> parent) {
// Another interface callback
}
});
// Inflate the layout for this fragment
return v;
}
Điều này làm việc tốt hơn cho tôi. Cảm ơn! –
Liên quan đến bình luận đầu tiên: Nếu bạn làm điều này bạn sẽ nhận được một lỗi (trong Android Studio). Điều này là liên quan đến nó được ra khỏi không gian tên Android. Nếu bạn không biết cách khắc phục lỗi này, hãy xem ví dụ bên dưới. Hi vọng điêu nay co ich!
Ví dụ -Before:
<string-array name="roomSize">
<item>Small(0-4)</item>
<item>Medium(4-8)</item>
<item>Large(9+)</item>
</string-array>
Ví dụ - Sau:
<string-array android:name="roomSize">
<item>Small(0-4)</item>
<item>Medium(4-8)</item>
<item>Large(9+)</item>
</string-array>
Không hoạt động. Tệp XML muốn 'string-array' của mình có thuộc tính' name' và không nhận ra 'android: name'. –
Thực hiện một mảng trong strings.xml, mà phải chứa dữ liệu của bạn và trỏ nó đến spinner sử dụng android: attribute xml mục .
Chỉ cần thay thế listview
với spinner trong hình ảnh này:
[http://androidride.com/wp-content/uploads/2018/01/how-android-entries-works-easiest-way-to-make-listview-in-android-androidride.com_-1024x863.png][1] Bạn có thể thấy rằng cách Android: mục công trình quá.
- 1. Android: Bố cục Spinner Tùy chỉnh
- 2. Bố cục ListFragment từ xml
- 3. Tiện ích jQueryUI Spinner với loại trực tiếp
- 4. thêm bố cục trong bố cục khác
- 5. Thêm VideoView vào bố cục XML
- 6. cách mở tệp xml bố cục trong Trình chỉnh sửa bố cục Android?
- 7. Bộ chọn xml Android cho bố cục
- 8. Nút có bố cục XML tùy chỉnh
- 9. ImageView trong bố cục XML android với layout_height = "wrap_content" có đệm trên & dưới
- 10. Đặt mẫu khối Magento trong bố cục xml
- 11. Xóa bộ tách ListView (trong tệp bố cục xml)
- 12. Chế độ xem tùy chỉnh trong bố cục xml
- 13. cách đặt màu nền trong bố cục xml?
- 14. Eclipse IDE - Bố cục đồ họa và bố cục XML của Android Cạnh nhau
- 15. cách sử dụng chế độ xem được khai báo trong một tệp xml bố cục trong bố cục khác
- 16. Bố cục động với bố cục đường ray
- 17. Cấu trúc mẫu bố cục trong Haml
- 18. Android - Có thể tuyên bố mặt nạ alpha trực tiếp trong định nghĩa XML danh sách lớp không?
- 19. Sử dụng lớp GLSurfaceView với bố cục xml android
- 20. Hiểu tệp xml bố cục Magento (tham chiếu, khối, ...)
- 21. Lối tắt giữa bố cục đồ họa và XML
- 22. Android: Cách tự động bao gồm Bố cục XML?
- 23. cách thêm chế độ xem vào bố cục XML android
- 24. Bố cục bố cục sai trong cửa sổ bật lên
- 25. Bố cục bố cục trong ứng dụng Android là gì?
- 26. Thêm bố cục vào bố cục khác trong Qt [C++]
- 27. Thay đổi bố cục Xml khi thay đổi hướng
- 28. Bố cục XML Hành vi sai trái với Eclipse-ADT
- 29. Bố cục lưới Vs. Bố cục bảng
- 30. De/Serialize trực tiếp đến/từ XML LINQ
tuyệt vời, cảm ơn rất nhiều! – cambraca
Chỉ muốn thêm rằng nếu bạn muốn các giá trị riêng biệt cho mỗi mục đã chọn, bạn có thể chỉ định 'android: entryValues =" @ array/array_name_values "'. –
Một lưu ý nhanh ... từ sự hiểu biết của tôi, Spinners không hỗ trợ 'drawSelectorOnTop' vì không có một bộ chọn riêng biệt khác với chính Spinner. Các giải pháp chắc chắn hoạt động mặc dù, cảm ơn! – Jabari