gpt4 book ai didi

android - Spinner 不会响应点击...即使调用了 onItemSelected?

转载 作者:行者123 更新时间:2023-11-29 02:16:35 26 4
gpt4 key购买 nike

我的 Activity 为微调器实现了 OnItemSelected 监听器。它有一个有趣的问题,即在 Activity 显示时触发 onItemSelected 回调。所以我使用了一个 flag hack 来解决它(我讨厌它,但在这一点上我只想让应用程序运行)。

奇怪的是,即使回调在 Activity 开始时被调用,我实际的触摸选择也不起作用。我可以触摸列表,打开它,查看数组适配器中的字符串,甚至可以触摸它以使其消失 - 但永远不会调用回调。

我的代码:

public class MyActivity extends Activity implements OnItemSelectedListener {

private ArrayList<String> mMyTypes = null;
private ArrayAdapter<String> mMyAdapter = null;
private Spinner mMyTypeSpinner = null;
// hack for spinner
boolean isFirstRunWithSpinner = true;

在 onCreate() 中:

mMyTypeSpinner = (Spinner) findViewById(R.id.my_activity_spinner);

mMyTypes = new ArrayList<String>();
mMyTypes.add("Test string");

mMyAdapter = new ArrayAdapter<String>(this, R.layout.custom_spinner_style, mMyTypes);
mMyAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mMyTypeSpinner.setAdapter(mMyAdapter);

// spinner listener
mMyTypeSpinner.setOnItemSelectedListener(this);

回调:

@Override
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
Toast
.makeText(ConfirmEditActivity.this, "Selected", Toast.LENGTH_LONG)
.show();
if( isFirstRunWithSpinner ) { isFirstRunWithSpinner = false; return; }

}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
Toast
.makeText(ConfirmEditActivity.this, "Nothing", Toast.LENGTH_LONG)
.show();
}

toast 在显示 Activity 时立即显示,但是当我在微调器中选择项目时,微调器消失并且不再显示 toast(更不用说回调中的其余代码无法执行)。

有什么意见吗?

我真的希望这件事简单...

最佳答案

微调器只会在选择新项目时响应 ItemSelected 事件。如果只有一项显示,显然您只能在下拉列表中重新选择这一项。这是 android 微调器的正确行为。如果您的列表中有超过 1 个项目,并且单击的项目不是当前选定的项目,将触发 onItemSelected。

来自安卓文档:

public abstract void onItemSelected (AdapterView parent, View view, int position, long id)

Callback method to be invoked when an item in this view has been selected. This callback is invoked only when the newly selected position is different from the previously selected position or if there was no selected item.

希望我能帮上忙。

关于android - Spinner 不会响应点击...即使调用了 onItemSelected?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3312932/

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