gpt4 book ai didi

java - Android 旋转器 "onclicklistener"问题

转载 作者:行者123 更新时间:2023-12-01 16:40:23 26 4
gpt4 key购买 nike

我正在使用 Spinner、光标和适配器。

我想为微调器设置一个点击监听器,以便一旦用户从微调器中选择一个项目,它就会获取当前选定的项目,然后执行一些其他任务(所有这些额外的代码都很好,这只是我的一个问题我有)....它有点有效,但是,一旦我声明 setOnItemSelectedListener 回调,由于光标已经被填充,一旦应用程序启动,该事件就会被触发。

我想我需要一种方法来定义光标而不选择初始项目,以便事件不会触发(因为不会选择项目)。或者还有其他更好的方法来实现这一目标吗?

基本上,就目前情况而言,一旦应用程序加载,setOnItemSelectedListener 函数就会触发,因为光标正在被填充(我认为)。此外,忽略事件触发得太快的事实,如果我随后在微调器中选择“相同”项目,则它不会触发事件,因为该项目没有更改。我应该使用不同的回调而不是 setonitemslectedlistener 吗?这是我到目前为止的代码。

            c = db.getallrecents();
startManagingCursor(c);

busnumspinner = (Spinner) findViewById(R.id.Spinner01);

SimpleCursorAdapter spinneradapter = new SimpleCursorAdapter(this,
R.layout.lvlayout, c, spincol, spinto);

busnumspinner.setAdapter(spinneradapter);


busnumspinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
String spinnerString = null;
Cursor cc = (Cursor)(busnumspinner.getSelectedItem());
if (cc != null) {
spinnerString = cc.getString(
cc.getColumnIndex("busnum"));
text = spinnerString;
}

showDialog(DATE_DIALOG_ID);

}

@Override
public void onNothingSelected(AdapterView<?> parentView) {
// your code here
}
});

最佳答案

这已经在 question 中讨论过。看看那里,尽管它的答案与blindstuff 给出的答案类似。

编辑:

如果 onItemSelectedListener 在您需要时没有触发,那么您可能需要在下拉列表的每个文本项中使用 onClickListener 并获取微调器所选项目的当前位置。问题是,正如所说的here spinner 不支持此事件,但也许您可以通过执行类似于此 stackoverflow question 中解释的操作来获取它。我还没有尝试过,所以我不确定它是否有效。

关于java - Android 旋转器 "onclicklistener"问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4287466/

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