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

标签 android spinner reload

) 我再次需要你的帮助。 我尝试了 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/

相关文章:

Android 使用 imageview 来显示 Spinner

Java Jinput : rescan/reload controllers

Java 类重新加载

android - Visual Studio 2015 CTP - Android ant.bat 构建错误 MSB3073

Android线性布局问题

android - 在 Drive SDK v.2 和 Google Drive Android API 之间共享凭据

javascript - 浏览器崩溃后保持自动重新加载工作? (javascript)

java - Android 媒体播放器从 res/raw 播放 .ogg 文件时出现错误 (-4 -4)

crash - 使用微调器时应用程序崩溃

java - 如何在 Android 上制作日期微调器