Tôi rất mới sử dụng Android. Tôi muốn sử dụng 2 spinners trong ứng dụng của tôi, một cho thấy danh sách các nước, khi bất kỳ quốc gia nào được chọn, spinner khác sẽ hiển thị danh sách các thành phố của quốc gia đó. khi thành phố được chọn, một số hành động được thực hiện. plz giúp tôi với một số mã mẫu. nhờ dự đoáncách sử dụng spinner
Trả lời
Dưới đây là một cái gì đó chúng ta có thể sử dụng để thêm tùy chọn để spinner2 wrt để spinner 1.
public class Activity extends Activity implements View.OnClickListener
{
private Spinner spinner0, spinner1, spinner2, spinner3;
private Button submit, cancel;
private String country[], state[], city[], area[];
Australia aus = new Australia();
Object object;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
spinner0 = (Spinner)findViewById(R.id.spinnerCountry);
spinner1 = (Spinner)findViewById(R.id.spinnerQ1);
spinner2 = (Spinner)findViewById(R.id.spinnerQ2);
spinner3 = (Spinner)findViewById(R.id.spinnerQ3);
submit = (Button)findViewById(R.id.btnSubmit);
cancel = (Button)findViewById(R.id.btnCancel);
submit.setOnClickListener(this);
cancel.setOnClickListener(this);
country = new String[] {"Select Country", "Australia", "USA", "UK", "New Zealand", "EU", "Europe", "China", "Hong Kong",
"India", "Malaysia", "Canada", "International", "Asia", "Africa"};
ArrayAdapter<String> adapter0 = new ArrayAdapter<String>(Activity.this, android.R.layout.simple_spinner_item, country);
adapter0.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spinner0.setAdapter(adapter0);
Log.i("AAA","spinner0");
spinner0.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View view1, int pos, long id)
{
Log.i("AAA","OnItemSelected");
int loc;
loc = pos;
switch (loc)
{
case 1:
state = aus.getState();
object = aus;
Log.i("AAA","ArrayAdapter1");
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(Activity.this, android.R.layout.simple_spinner_item, state);
adapter1.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spinner1.setAdapter(adapter1); Log.i("AAA","spinner1");
break;
default:
Log.i("AAA","default 0");
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> arg1)
{
Log.i("AAA","Nothing S0");
}
});
spinner1.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View view1, int pos, long id)
{
Log.i("AAA","OnItemSelected S1");
int loc = pos;
switch(loc)
{
case 1:
Log.i("AAA","Australia");
if(object.equals(aus))
{
city = aus.getType(loc);
}
else
{
break;
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(Activity.this, android.R.layout.simple_spinner_item, city);
adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spinner2.setAdapter(adapter); Log.i("AAA","spinner2");
break;
default:
Log.i("AAA", "default 1");
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0)
{
Log.i("AAA","Nothing S1");
}
});
spinner2.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int pos, long id)
{
int loc = pos;
switch (loc)
{
case 1:
if(object.equals(aus))
{
area = aus.getTitle(loc);
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(Activity.this, android.R.layout.simple_spinner_item, area);
adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spinner3.setAdapter(adapter); Log.i("","spinner3");
break;
default:
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0)
{
// TODO Auto-generated method stub
}
});
}// on-create
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.btnSubmit:
break;
case R.id.btnCancel:
finish();
break;
default:
break;
}
}
}
Nếu bạn tìm thấy điều này hữu ích, sau đó làm cho nó bỏ phiếu, để những người khác có thể tìm thấy một câu trả lời tốt một cách dễ dàng.
Đối với mỗi Quốc gia, bạn phải tạo một lớp cho quốc gia đó, chỉ cần thêm Tiểu bang, Thành phố & Khu vực. Vì vậy, nó không trở thành một lưới tại một đơn tại trang duy nhất.
Vui chơi.
Kính trọng,
Haps.
Dưới đây là một số mẫu mã trong đó mô tả việc sử dụng spinner và hành động thực hiện khi mục spinner được chọn
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;
public class MainActivity extends Activity {
Spinner spin;
String spin_val;
String[] gender = { "Male", "Female" };//array of strings used to populate the spinner
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//setting layout
spin = (Spinner) findViewById(R.id.spinner_id);//fetching view's id
//Register a callback to be invoked when an item in this AdapterView has been selected
spin.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long id) {
// TODO Auto-generated method stub
spin_val = gender[position];//saving the value selected
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
//setting array adaptors to spinners
//ArrayAdapter is a BaseAdapter that is backed by an array of arbitrary objects
ArrayAdapter<String> spin_adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, gender);
// setting adapteers to spinners
spin.setAdapter(spin_adapter);
}
}
Để thêm một danh sách các giá trị vào spinner, sau đó bạn cần phải xác định một SpinnerAdapter trong hoạt động của bạn , mở rộng lớp Adapter .. Một bộ chuyển đổi spinner cho phép xác định hai chế độ xem khác nhau: một bộ lọc hiển thị dữ liệu trong chính spinner và một cho thấy dữ liệu trong danh sách thả xuống khi máy quay được nhấn. Bạn cũng có thể tải xuống & tham khảo dự án ví dụ hoàn chỉnh spinner_demo để hiểu rõ hơn.
- 1. Android - cấu hình Spinner sử dụng mảng
- 2. Làm cách nào để sử dụng spinner setOnItemLongClickListener
- 3. Sử dụng entryValues với phần tử Spinner
- 4. Phong cách android spinner
- 5. Cách nhận giá trị Spinner?
- 6. Có cách nào để sử dụng setOnClickListener với một Spinner Android không?
- 7. Cách lấy giá trị int từ spinner
- 8. Spinner không lấy nét
- 9. cách thêm mục vào ArrayAdapter của Spinner?
- 10. Cách ghi đè onClick trên Android Spinner?
- 11. Android Spinner - Cách xóa nút radio?
- 12. Spinner Primefaces - Cách thay đổi chiều rộng
- 13. Cách hiển thị dải phân cách giữa các mục spinner?
- 14. Làm mới Spinner
- 15. Android: hai Spinner onItemSelected()
- 16. Android Spinner Size rất lớn
- 17. Kết hợp Spinner và AutoCompleteTextView
- 18. Spinner for Twitter Bootstrap .btn
- 19. đặt onClickListener cho mục spinner?
- 20. Android: Mở Spinner từ Nút
- 21. Làm thế nào để bật lên danh sách như một spinner không có spinner trong android?
- 22. Spinner với lựa chọn mặc định trống
- 23. Thêm spinner để ActionBar (không Navigation
- 24. Android: Không thể tạo kiểu phân cách spinner
- 25. Làm cách nào để thêm spinner vào ActionBar?
- 26. cách tạo spinner có thể chỉnh sửa trong Android?
- 27. Android Spinner - Cách chọn danh sách mặc định là none
- 28. Cách thêm tùy chọn tìm kiếm vào Android Spinner?
- 29. SpinnerPreference? (Cách nhúng Spinner vào màn hình Tùy chọn)
- 30. Android: Bố cục Spinner Tùy chỉnh
Kiểm tra blog [this] (http://stackoverflow.com/questions/1337424/android-spinner-get-the-selected-item-change-event), nó sẽ cho bạn biết điều gì đó tốt đẹp. Tôi cũng đang làm việc trên cùng một khái niệm, tôi sẽ đặt câu trả lời ở đây, khi tôi nhận được một giải pháp hoàn chỉnh. Kính trọng, Haps. – Harpreet