2013-04-20 39 views
12

Tôi muốn tạo một spinner mà không sử dụng xml. Tôi mới trong android và kiến ​​thức của tôi bị hạn chế. Bởi bây giờ tôi có mã này (xem ở trên) và tôi muốn spinner của tôi ở trên các tab của TabActivity của tôi. Không có lỗi rõ ràng nhưng khi tôi mở hoạt động của tôi, tab này trống. Tôi sẽ rất cảm kích nếu có sự giúp đỡ nào đó.Tạo một spinner lập trình android

public class Search extends Activity { 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    ArrayList<String> spinnerArray = new ArrayList<String>(); 
    spinnerArray.add("one"); 
    spinnerArray.add("two"); 
    spinnerArray.add("three"); 
    spinnerArray.add("four"); 
    spinnerArray.add("five"); 

    Spinner spinner = new Spinner(this); 
    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, spinnerArray); 
    spinner.setAdapter(spinnerArrayAdapter); 


} 
+0

Điều đó có nghĩa là bạn muốn có một "spinner in trên các tab "? Bạn có thể cho thấy một ví dụ về những gì bạn đang cố gắng để có được? –

Trả lời

24

Bạn cần thêm Spinner vào bố cục.

Trước tiên, hãy tạo container cho Spinner và sau đó tạo Spinner và thêm nó vào container của bạn. Tiếp theo, hãy đặt nội dung của bạn Activity vào số container của bạn.

Điều này có thể được thực hiện như thế này, trong onCreate phương pháp của bạn:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_my); 

    LinearLayout layout = new LinearLayout(this); 

    ArrayList<String> spinnerArray = new ArrayList<String>(); 
    spinnerArray.add("one"); 
    spinnerArray.add("two"); 
    spinnerArray.add("three"); 
    spinnerArray.add("four"); 
    spinnerArray.add("five"); 

    Spinner spinner = new Spinner(this); 
    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, spinnerArray); 
    spinner.setAdapter(spinnerArrayAdapter); 

    layout.addView(spinner); 

    setContentView(layout); 
} 

EDIT:

Chỉ cần làm rõ: nếu Spinner không được thêm vào nội dung của Activity bên trong một bố cục, nó không hiển thị, vì vậy đó là lý do tại sao bạn không nhận được bất kỳ lỗi hoặc bất cứ điều gì, bởi vì không có bất kỳ lỗi nào trong mã của bạn, mỗi ;-)

+0

tôi sử dụng TabActivity và bố cục hoạt động của tôi có một TabHost. Tôi muốn sử dụng spinner chỉ trong một tab và đó là lý do tại sao tôi đã không đặt một spinner trong xml. Làm thế nào là nó có thể tạo ra một bố trí (activity_my) để đặt các spinner và sử dụng nó chỉ trong tab này ?? – MavrosGatos

+0

Để thêm spinner vào một đoạn cụ thể, bạn sẽ cần thêm spinner vào bố cục các đoạn cụ thể thay vì bố cục của hoạt động. Nếu điều này không có ý nghĩa, hãy mở một câu hỏi mới cho điều đó. – Darwind