gpt4 book ai didi

添加适配器后,Android Spinner 保持为空

转载 作者:行者123 更新时间:2023-11-30 02:15:39 25 4
gpt4 key购买 nike

) 我再次需要你的帮助。我尝试了 2 个小时来解决这个问题,我在谷歌上搜索了很多并寻找类似的问题。我找到了很多,但没有任何效果。

这是我的问题:我从“植物”的 ArrayList 中填充一个微调器。然后我为这个微调器设置一个适配器,最后设置一个 OnItemSelectedListener。当我打开 Activity 时,微调器是空的。但他一定做了什么,因为当我返回主屏幕并再次打开应用程序(通过图标,而不是任务管理器)时,微调器已正确填充。我不能只是重新加载 Activity ,因为然后我陷入了无限循环:(我认为 Spinner 在使用 OnStart 方法后会重新加载。但我现在不知道如何继续:(

这是我的代码:

*公共(public)类 entscheidungsbaum 扩展 Activity 实现 OnItemSelectedListener {

private Spinner spAlter= null;
private Spinner spArt= null;
private Spinner spBlaetterrand= null;
private Spinner spBlaetterForm= null;
private Spinner spBlueten= null;


@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.entscheidungsbaum);

final Activity activity = this;
activity.setTitle("Pflanze eintragen");

spAlter = (Spinner)this.findViewById(R.id.spAlter);
spArt = (Spinner)this.findViewById(R.id.spArt);
spBlaetterrand = (Spinner)this.findViewById(R.id.spBlaetterrand);
spBlaetterForm = (Spinner)this.findViewById(R.id.spBlaetterform);
spBlueten = (Spinner)this.findViewById(R.id.spBlueten);
FillSpinner();



}


@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
}

public void onButtonClick (View Click) {
switch(Click.getId()){
default: return;
case R.id.weiter:
startActivity(new Intent(this, formular.class));
return;
}
}

public void FillSpinner(){

Bundle extras = getIntent().getBundleExtra("plantbundle");
ArrayList<Plant> plantlist = extras.getParcelableArrayList("plant");


ArrayAdapter<Plant> spinnerArrayAdapter = new ArrayAdapter<Plant>(this, android.R.layout.simple_spinner_item,plantlist);
spAlter.setAdapter(spinnerArrayAdapter);

spAlter.setOnItemSelectedListener(this);



}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position,
long id) {
Plant plant = (Plant)spAlter.getSelectedItem();
// Anzeigen
toast_selec_plant(plant);

}
private void toast_selec_plant(Plant plant) {
Toast.makeText(this, "Pflanze ausgewählt:" + plant.toString(), Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub

}

}*

伊迪丝发现:我从 Intent 中得到的植物列表是空的,这就是为什么微调器也保持空的原因。但是当我退出应用程序并再次进入时,它会起作用。奇怪的。如果您有任何提示,欢迎您;)

最佳答案

好的,伙计们。我得到了它。我现在可以结束这段独白了。只是告诉感兴趣的人我的失败是什么:

在按 Intent 将植物数组列表提供给 entscheidungsbaum.class 的类中失败了。我在类的顶部定义了一个 Arraylist 变量,并用一个额外的方法填充它。但是如果不刷新 Activity,Arraylist 将保持为空直到刷新。所以我只是删除了变量定义并重写了返回 arraylist 的方法。之后,我根据 Intent 将其直接发送到我的 entscheidungsbaum.class。并且有效 ;)

谢谢大家,你可以删除或卡住这个问题:)

关于添加适配器后,Android Spinner 保持为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29415041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com