【发布时间】:2014-09-19 14:46:23
【问题描述】:
在片段中工作时,我试图返回一个通过选择微调器中的项目确定的值,但我无法使其工作。方法内的 Toast 通知甚至不起作用,似乎问题出在方法内。我该如何解决这个问题?
public Spinner districtSpinner, countySpinner;
public int selectedDistrict;
是使用的变量。这是我的父微调器方法 DistrictSpinner()
public void districtSpinner() {
ArrayAdapter<String> Dadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.districtNames));
Dadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
districtSpinner.setAdapter(Dadapter);
districtSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
selectedDistrictPosition = districtSpinner.getSelectedItemPosition();
switch (selectedDistrictPosition) {
case 0: {
selectedDistrict = 1;
break;
}
case 1: {
selectedDistrict=2;
break;
}
case 2: {
selectedDistrict=3;
break;
}
case 3: {
selectedDistrict=4;
break;
}
case 4: {
selectedDistrict=5;
break;
}
case 5: {
selectedDistrict=6;
break;
}
case 6: {
selectedDistrict=8;
break;
}
case 7: {
selectedDistrict=9;
break;
}
case 8: {
selectedDistrict=10;
break;
}
case 9: {
selectedDistrict=11;
break;
}
case 10: {
selectedDistrict=12;
break;
}
default: {
selectedDistrict=1;
break;
}
}
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
);
}
这是我试图使依赖于父微调器的子微调器“countySpinner”。该方法应根据 selectedDistrict 进行切换,并使用包含每个地区的县集 (R.array.districtx) 的相应字符串数组设置微调器。目前第二个微调器什么都不做,就我而言,countySpinner() 甚至没有被调用。
public void countySpinner() {
switch (selectedDistrict) {
case 0: {
break;
}
case 1: {
ArrayAdapter<String> Cadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.district1));
Cadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
countySpinner.setAdapter(Cadapter);
countySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
);
break;
}
case 2: {
ArrayAdapter<String> Cadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.district2));
Cadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
countySpinner.setAdapter(Cadapter);
countySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
);
break;
}
case 3: {
ArrayAdapter<String> Cadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.district3));
Cadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
countySpinner.setAdapter(Cadapter);
countySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
);
break;
}
case 4: {
ArrayAdapter<String> Cadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.district4));
Cadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
countySpinner.setAdapter(Cadapter);
countySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
);
break;
}
case 5: {
ArrayAdapter<String> Cadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.district5));
Cadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
countySpinner.setAdapter(Cadapter);
countySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
);
break;
}
case 6: {
ArrayAdapter<String> Cadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.district6));
Cadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
countySpinner.setAdapter(Cadapter);
countySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
);
break;
}
case 7: {
break;
}
case 8: {
ArrayAdapter<String> Cadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.district8));
Cadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
countySpinner.setAdapter(Cadapter);
countySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
);
break;
}
case 9: {
ArrayAdapter<String> Cadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.district9));
Cadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
countySpinner.setAdapter(Cadapter);
countySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
);
break;
}
case 10: {
ArrayAdapter<String> Cadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.district10));
Cadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
countySpinner.setAdapter(Cadapter);
countySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
);
break;
}
case 11: {
ArrayAdapter<String> Cadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.district11));
Cadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
countySpinner.setAdapter(Cadapter);
countySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
);
break;
}
case 12: {
ArrayAdapter<String> Cadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.district12));
Cadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
countySpinner.setAdapter(Cadapter);
countySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
);
break;
}
default: {
break;
}
}
【问题讨论】:
-
districtSpinner() 是如何使用的?看来您调用它并期望选择的 int 是返回值。
-
@ErikNedwidek 它几乎只是用于指定选择哪个地区。我正在尝试在 switch case 中使用返回的 int。
-
这就是问题所在。
switch case只会在项目被选中时运行,而不是在您调用districtSpinner()方法时运行。
标签: android android-layout android-activity android-fragments android-spinner