gpt4 book ai didi

Android:操作栏触发微调器问题

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

安卓:我想创建一个从 ActionBar 触发的 Spinner。我正在使用以下代码。我看到的是在初始化时运行菜单项 0(无需单击)。我还看到选择另一个 menu-item-1 不起作用。以下代码有什么问题?

我已经在代码中定位了这两个问题:

资源/菜单/main.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_spinner1"
android:showAsAction="always"
android:orderInCategory="1"
android:actionViewClass="android.widget.Spinner">
</item>

MainActivity中的代码:

public boolean onCreateOptionsMenu(Menu menu) { 
String[] spinnerEntries = new String[]{ "Item-1", "Item-2", "Item-3"};
MenuInflater mi=getMenuInflater();
mi.inflate( R.menu.main, menu);
mSpinnerItem1 = menu.findItem( R.id.menu_spinner1);
View view1 = mSpinnerItem1.getActionView();

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, spinnerEntries);
adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item);

if (view1 instanceof Spinner) {
final Spinner spinner = (Spinner) view1;
spinner.setAdapter( adapter);
spinner.setPopupBackgroundResource(R.drawable.spinner);
spinner.setOnItemSelectedListener( new OnItemSelectedListener() {
@Override
public void onItemSelected( AdapterView<?> arg0, View arg1, int arg2, long arg3) {
switch( arg2) {
case 0:
// Problem 1:
// first this code is executed before any click happened
//
// Problem 2:
// then ... the code is executed only after I clicked first
// on item-2 or item-3 and then to item-1
break;
case 1:
// code for option 2 etc.
}
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
return true;
}

最佳答案

首先,

当您将 Adapter 设置为 Spinner 并且将 Spinner 添加到窗口(添加到 ActionBar)时,然后 Spinner 将从 Adapter 中选择第一个项目 View(其在 Adapter 中的位置为零)并调用 OnItemSelectedListener (首先收到来自 Spinner 的回调,无论您是否选择,Spinner 都会选择)。

其次,

如果您从 Spinner 中选择了先前已选择的项目,那么您将不会收到来自 SpinnerOnItemSelectedListener 回调。 ..

关于Android:操作栏触发微调器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20825229/

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