2012-01-20 54 views
12

Tôi đang cố tạo một spinner hoàn toàn tùy chỉnh. Tôi đang gặp khó khăn với cách bố trí bật lên khi bạn nhấn vào nó. Đây là mã của tôi cho bộ chuyển đổi của tôi:Android: Bố cục Spinner Tùy chỉnh

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, R.array.my_array, R.layout.spinnertext); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 

Từ những gì tôi đã đọc trong các tài liệu hướng dẫn, bố trí sử dụng apears được thiết lập bởi dòng:

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

Mặc dù mỗi khi tôi thay đổi nó thành một bố cục mới mà tôi tạo ra, nó làm cho ứng dụng thất bại khi tôi thử và sử dụng máy quay. Tôi đã cố gắng để tìm những gì "android.R.simple_spinner_dropdown_item" trông giống như vậy để tìm ra nếu tôi có thể thiếu bất cứ điều gì.

Tất cả bố cục của tôi mà tôi đã thử là bố cục tuyến tính hoặc tương đối, chỉ với một textView.

Làm cách nào để bố cục tùy chỉnh bật lên khi xoay vòng được chọn?

Trả lời

22

row.xml để thiết lập cách bố trí trên mỗi hàng (trong trường hợp này: một hình ảnh và văn bản mỗi hàng):

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 

    <ImageView 
     android:id="@+id/icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/icon"/> 

    <TextView 
     android:id="@+id/weekofday" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
</LinearLayout> 

Java:

public class AndroidCustomSpinner extends Activity { 

String[] DayOfWeek = {"Sunday", "Monday", "Tuesday", 
    "Wednesday", "Thursday", "Friday", "Saturday"}; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Spinner mySpinner = (Spinner)findViewById(R.id.spinner); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
     R.layout.row, R.id.weekofday, DayOfWeek); 
     mySpinner.setAdapter(adapter); 
    } 
} 
+0

tôi không có thời gian ngày hôm qua. tôi đã chỉnh sửa bài đăng của tôi :) – Prexx

+2

là liên kết bị hỏng? Tôi không thể nhìn thấy hướng dẫn. – alaeri

+0

Có, liên kết đã chết ... –

Các vấn đề liên quan