android中使用依赖微调器(多微调器)的问题
我试图从上一个微调器填充下一个微调器的值。在本例中,我所做的是在微调器内生成所有值,这意味着无论我在上一个微调器中选择哪个值,它总是在下一个微调器中显示所有值。我使用了五个微调器,它们需要根据前一个微调器填充值。这里我使用了一个微调器库。图书馆如下android中使用依赖微调器(多微调器)的问题,android,arrays,filter,android-spinner,Android,Arrays,Filter,Android Spinner,我试图从上一个微调器填充下一个微调器的值。在本例中,我所做的是在微调器内生成所有值,这意味着无论我在上一个微调器中选择哪个值,它总是在下一个微调器中显示所有值。我使用了五个微调器,它们需要根据前一个微调器填充值。这里我使用了一个微调器库。图书馆如下 'com.toptoche.searchablespinner:searchablespinnerlibrary:1.3.1' 在这里,我将分享我的全部代码/课程供您参考。没有错误,我在各自的微调器中获取所有值,但我希望根据上一个微调器获取值。这是
'com.toptoche.searchablespinner:searchablespinnerlibrary:1.3.1'
在这里,我将分享我的全部代码/课程供您参考。没有错误,我在各自的微调器中获取所有值,但我希望根据上一个微调器获取值。这是我的密码
import androidx.appcompat.app.AppCompatActivity;
import com.toptoche.searchablespinnerlibrary.SearchableSpinner;
public class Catchment extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
public ArrayAdapter<String> regionAdapter;
public ArrayAdapter<String> districtAdapter;
public ArrayAdapter<String> upzAdapter;
public ArrayAdapter<String> unionAdapter;
public ArrayAdapter<String> villageAdapter;
public String[] Region = {"1", "2",
};
public String[] District = {"1","2","3","4","5","6","7","8",};
public String[] Upz = {"1","2"...."23";
public String[] Union = {"1","2"...."25"..."50"...."115"};
public String[] Village = { "1","2"...."25"..."50"...."150"...."500"...."947" };
Button catchment_code;
SearchableSpinner spinner_region, spinner_district, spinner_upz, spinner_union, spinner_village;
String[] region_code;
String[] district_code;
String[] upz_code;
String[] union_code;
String[] vill_code;
int positions;
String test;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_catchment);
spinner_region = (SearchableSpinner) findViewById(R.id.region);
spinner_district = (SearchableSpinner) findViewById(R.id.district);
spinner_upz = (SearchableSpinner) findViewById(R.id.upz);
spinner_union = (SearchableSpinner) findViewById(R.id.union);
spinner_village = (SearchableSpinner) findViewById(R.id.village);
catchment_code = findViewById(R.id.catchment_code);
// Set spninner adapter
regionAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, Region);
districtAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, District);
upzAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, Upz);
unionAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, Union);
villageAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, Village);
//Set dropdown to the spinner
regionAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
districtAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
upzAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
unionAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
villageAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//assign to spinner
spinner_region.setAdapter(regionAdapter);
spinner_district.setAdapter(districtAdapter);
spinner_upz.setAdapter(upzAdapter);
spinner_union.setAdapter(unionAdapter);
spinner_village.setAdapter(villageAdapter);
spinner_region.setOnItemSelectedListener(this);
spinner_district.setOnItemSelectedListener(this);
spinner_upz.setOnItemSelectedListener(this);
spinner_union.setOnItemSelectedListener(this);
spinner_village.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (parent.getId() == R.id.region) {
positions = spinner_region.getSelectedItemPosition();
region_code = this.getResources().getStringArray(R.array.region_code);
//Toast.makeText(this, region_code[positions], Toast.LENGTH_SHORT).show();
}
if (parent.getId() == R.id.district) {
positions = spinner_district.getSelectedItemPosition();
district_code = this.getResources().getStringArray(R.array.district_code);
//Toast.makeText(this, district_code[positions], Toast.LENGTH_SHORT).show();
}
if (parent.getId() == R.id.upz) {
positions = spinner_upz.getSelectedItemPosition();
upz_code = this.getResources().getStringArray(R.array.upz_code);
//Toast.makeText(this, upz_code[positions], Toast.LENGTH_SHORT).show();
}
if (parent.getId() == R.id.village) {
positions = spinner_village.getSelectedItemPosition();
vill_code = this.getResources().getStringArray(R.array.village_code);
//Toast.makeText(this, vill_code[positions], Toast.LENGTH_LONG).show();
}
if (parent.getId() == R.id.union) {
positions = spinner_union.getSelectedItemPosition();
union_code = this.getResources().getStringArray(R.array.union_code);
//Toast.makeText(this, union_code[positions], Toast.LENGTH_SHORT).show();
}
if (!(vill_code == null || region_code == null || district_code == null || upz_code == null ||
union_code == null)) {
test = region_code[positions] +
district_code[positions] +
upz_code[positions] +
union_code[positions] + vill_code[positions];
Toast.makeText(this, test, Toast.LENGTH_SHORT).show();
}
catchment_code.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Catchment.this, Participant_Details.class);
intent.putExtra("catment_code", test);
startActivity(intent);
}
});
//Toast.makeText(this, union_code[positions]+upz_code[positions], Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
@Override
public void onBackPressed() {
Intent intent = new Intent(Catchment.this, SplashScreen.class);
Catchment.this.startActivity(intent);
Catchment.this.finish();}
}
导入androidx.appcompat.app.appcompat活动;
导入com.topche.searchablespinnerlibrary.SearchableSpinner;
公共类扩展AppCompativeActivity实现AdapterView.OnItemSelectedListener{
公共阵列适配器区域适配器;
公共阵列适配器分区适配器;
公共阵列适配器UpzaAdapter;
公共阵列适配器;
公共阵列适配器村庄适配器;
公共字符串[]区域={“1”,“2”,
};
公共字符串[]地区={“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、};
公共字符串[]Upz={“1”、“2”…“23”;
公共字符串[]Union={“1”、“2”…“25”…“50”…“115”};
公共字符串[]村庄={“1”、“2”…“25”…“50”…“150”…“500”…“947”};
按钮编码;
可搜索的spinner spinner_地区、spinner_区、spinner_upz、spinner_联盟、spinner_村;
字符串[]区域代码;
字符串[]地区代码;
字符串[]upz_代码;
字符串[]联合编码;
字符串[]vill_代码;
int位置;
串试验;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_);
微调器_区域=(SearchableSpinner)findViewById(R.id.region);
spinner_district=(SearchableSpinner)findViewById(R.id.district);
微调器_upz=(SearchableSpinner)findViewById(R.id.upz);
微调器联合=(SearchableSpinner)findViewById(R.id.union);
spinner_village=(SearchableSpinner)findViewById(R.id.village);
集水区代码=findViewById(R.id.集水区代码);
//设置spninner适配器
RegionaAdapter=new ArrayAdapter(这是android.R.layout.simple\u微调器\u项,Region);
districtAdapter=new ArrayAdapter(这是android.R.layout.simple\u微调器\u项,District);
upzAdapter=newarrayadapter(这是android.R.layout.simple\u spinner\u项,Upz);
unionAdapter=new ArrayAdapter(这是android.R.layout.simple\u微调器\u项,Union);
villageAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,Village);
//将下拉列表设置为微调器
regionAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
districtAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
upzAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
unionAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
//分配给微调器
spinner_region.setAdapter(regionAdapter);
spinner_district.setAdapter(districtAdapter);
微调器设置适配器(upzAdapter);
微调器_union.setAdapter(unionAdapter);
spinner_village.setAdapter(villageAdapter);
微调器_区域。setOnItemSelectedListener(此);
spinner_district.setOnItemSelectedListener(此);
微调器_upz.setOnItemSelectedListener(此);
微调器_union.setOnItemSelectedListener(此);
spinner_village.SetonimselectedListener(此);
}
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
if(parent.getId()==R.id.region){
positions=spinner\u region.getSelectedItemPosition();
region\u code=this.getResources().getStringArray(R.array.region\u code);
//Toast.makeText(这是region_code[positions],Toast.LENGTH_SHORT.show();
}
if(parent.getId()==R.id.district){
positions=spinner\u district.getSelectedItemPosition();
district\u code=this.getResources().getStringArray(R.array.district\u code);
//Toast.makeText(这是district_code[positions],Toast.LENGTH_SHORT.show();
}
if(parent.getId()==R.id.upz){
positions=spinner_upz.getSelectedItemPosition();
upz_代码=this.getResources().getStringArray(R.array.upz_代码);
//Toast.makeText(这是upz_代码[positions],Toast.LENGTH_SHORT.show();
}
if(parent.getId()==R.id.village){
positions=spinner\u village.getSelectedItemPosition();
vill_code=this.getResources().getStringArray(R.array.village_code);
//Toast.makeText(这是vill_代码[positions],Toast.LENGTH_LONG.show();
}
if(parent.getId()==R.id.union){
positions=spinner\u union.getSelectedItemPosition();
union\u code=this.getResources().getStringArray(R.array.union\u code);
//Toast.makeText(这是union_代码[positions],Toast.LENGTH_SHORT.show();
}
如果(!(vill|U代码==null | |地区代码==null | |地区代码==null | | upz|U代码==null||
联合(U代码==null)){
测试=区域代码[位置]+
地区代码[职位]+
upz_代码[位置]+
工会代码[职位]+维尔代码[职位];
Toast.makeText(this,test,Toast.LENGTH_SHORT).show();
}
集合代码.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
意向意向=新意向(集水区、本、参与者详细信息、课程);
意向。额外(“catment_代码”,测试);
星触觉(意向);
}
});
//Toast.makeText(这个,联合码[positions]+upz码[positions],Toast.LENGTH\u SHORT.show();
}
@凌驾
未选择公共无效(AdapterView父级){
}
@凌驾
public void onBackPressed(){
意图=新的I
@Override
protected void onCreate(Bundle savedInstanceState) {
--------;
// Set spninner adapter
regionAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, Region);
districtAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, new String[]());
upzAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, new String[]());
unionAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, new String[]());
villageAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, new String[]());
------
spinner_region.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (parent.getId() == R.id.region) {
positions = spinner_region.getSelectedItemPosition();
String[] filteredDistrict = District.filter(Region[position]) // District.filter is not any predefined function, assuming some filter needed for selected Districts
districtAdapter.addValues(filteredDistrict);
districtAdapter.notifyDataSetChanged()
spinner_district.setOnItemSelectedListener(this);
}
}