gpt4 book ai didi

java - 选择另一个微调器后更新微调器

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

大家好,我几天前才开始制作 Android 应用程序,我正在尝试用另一个微调器更新一个微调器信息。在您开始讨厌之前,我已经检查了其他答案并尝试了所有答案,但由于某种原因都没有用!它应该从一个 xml 字符串文件中获取一个数组并用它填充微调器我不知道我是否在我的代码中犯了错误或其他什么但它似乎不起作用。这是不起作用的代码部分:

public class NextBusesActivity extends Activity {

private Spinner spinnerRoutes;
private Spinner spinnerStops;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_next_buses);

spinnerStops = (Spinner)findViewById(R.id.nextBusStopsSpinner);
spinnerRoutes = (Spinner)findViewById(R.id.nextBusRoutesSpinner);


spinnerRoutes.setOnItemSelectedListener(spinnerBusRouteHandler);
}


private OnItemSelectedListener spinnerBusRouteHandler= new OnItemSelectedListener(){

public void onItemSelected(AdapterView<?> parent, View view, int pos,
long id) {
Log.d(MainActivity.DEBUGTAG, "Made it into the listener");

//if (parent.getItemAtPosition(pos).toString().contains("Trent")){

Log.d(MainActivity.DEBUGTAG, "Made it to Trent west bank choice");
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getApplicationContext(),
R.array.westbank_stops, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

spinnerStops.setAdapter(adapter);

Log.d(MainActivity.DEBUGTAG, "Spinner refill worked westbank");
//}

}

public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub

}

};

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_next_buses, menu);
return true;
}
}

谢谢大家的帮助。

最佳答案

你的问题不在上面的代码中。您可能正在尝试在 onCreate 中手动设置第一个微调器的选择,并期望 ItemSelectListener 能够完成它的工作。好吧,事实并非如此。只有在 onCreate 代码完全执行后,Listener 才会激活。

所以如果你这样做:

@Override
public void onCreate(Bundle savedInstanceState) {
...
spinnerRoutes.setOnItemSelectedListener(spinnerBusRouteHandler);
spinnerRoutes.setSelected(someSpinnerPosition, true);

// some other code that involves the second spinner

}

当您执行 setSelected 时,不要指望监听器会被准确触发,因为它不会。它将执行所有 onCreate 代码,甚至是“//一些涉及第二个微调器的其他代码”,并且仅在此之后,监听器才会激活并被触发。

我自己遇到了这个问题,我必须找到解决方法。非常烦人。

关于java - 选择另一个微调器后更新微调器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13407199/

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