Tôi có biểu mẫu Android cần cập nhật chính nó dựa trên các lựa chọn nhất định. Biểu mẫu hiện được tạo thành từ 2 Spinners (A và B). Spinner B không được tạo cho đến khi lựa chọn của Spinner A được thực hiện. Sau khi lựa chọn được thực hiện B sẽ được hiển thị để xem và nội dung của nó được điền động dựa trên lựa chọn của A. Đây là mã của tôi:Android Spinner - Cách chọn danh sách mặc định là none
public class MyForm extends Activity
{
private final int SEL_ACTIVATE = 0;
private final int SEL_DEACTIVATE = 1;
private static final String[] actionList = {"Activate", "Deactivate" };
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
table = (TableLayout) findViewById(R.id.table);
showListA(table);
}
public void showListA(View v)
{
rowAction = new TableRow(this);
Spinner spinner = new Spinner(this);
spinner.setPrompt("Select...");
spinner.setOnItemSelectedListener(
new OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> parent, View v, int position, long id)
{
switch (position)
{
case SEL_ACTIVATE:
case SEL_DEACTIVATE:
showListB(v);
break;
}
}
public void onNothingSelected(AdapterView<?> arg0)
{
// TODO Auto-generated method stub
}
});
ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, actionList);
adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spinner.setAdapter(adapter);
rowAction.addView(tvAction);
rowAction.addView(spinner);
table.addView(rowAction, new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
}
...
}
Mã này hoạt động chính xác. Khi chọn "Kích hoạt" hoặc "Hủy kích hoạt" từ danh sách, showListB()
thực hiện rất giống với showListA()
trong cách tạo hàng mới chứa Nhãn và Spinner.
Vấn đề là, theo mặc định, "Kích hoạt" được hiển thị trong Spinner thực hiện showListB()
và phải tắt bat, phần thứ hai của biểu mẫu được tạo dựa trên tùy chọn "Kích hoạt". Cách giải quyết duy nhất mà tôi có thể đưa ra là thêm trường thứ ba vào Spinner như vậy:
private static final String[] actionList = {"None", "Activate", "Deactivate" };
...
switch (position)
{
case SEL_NONE:
break;
case SEL_ACTIVATE:
case SEL_DEACTIVATE:
showListB(v);
break;
}
Tác phẩm này ... nhưng tôi không muốn có tùy chọn thứ ba trong danh sách. Tôi chỉ muốn nó, theo mặc định, được để trống hoặc hiển thị một số loại văn bản 'nhắc' mà không phải là một tùy chọn trong danh sách khi nó được nhấn. Điều này có thể không?
Cảm ơn
EDIT:
nội dung xml:
<Spinner
android:id="@+id/spinnerAction"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
Hãy đưa ra lý do khi bạn nghĩ rằng câu trả lời không hữu ích (-1), theo cách đó tất cả có thể hiểu tại sao câu trả lời này không tốt và cho thấy cách tốt hơn để làm điều đó! Cảm ơn. – TheCottonSilk
Để làm rõ, điều này có tác dụng vì bạn đang thiết lập 'OnItemSelectedListener' ** sau ** bạn đã đặt' Adapter' đúng chưa? –
Biến chunkSize là gì? – CACuzcatlan