gpt4 book ai didi

Android 微调器 onselect AsyncTask

转载 作者:行者123 更新时间:2023-11-29 22:54:10 25 4
gpt4 key购买 nike

我有 2 个微调器元素,我想在用户更改任何微调器的选择时启动一个异步任务。

问题是,当我在我的设备上启动 Activity 时,两个异步任务都会立即启动,即使用户没有选择任何东西。

我尝试过的:

        final Spinner sp1 = findViewById(R.id.spinner1);
final Spinner sp2 = findViewById(R.id.spinner2);

final List<String> list = new ArrayList<String>();
list.add(getString(R.string.text1));
list.add(getString(R.string.text2));
list.add(getString(R.string.text3));

final List<String> list2 = new ArrayList<String>();
list2.add(getString(R.string.item1));
list2.add(getString(R.string.item2));
list2.add(getString(R.string.item3));

ArrayAdapter<String> adp1 = new ArrayAdapter<String>(this,
R.layout.spinner_item, list);
adp1.setDropDownViewResource(R.layout.my_spinnerlist);
sp1.setAdapter(adp1);
sp1.setSelection(((ArrayAdapter)sp1.getAdapter()).getPosition(default1));

ArrayAdapter<String> adp2 = new ArrayAdapter<String>(this,
R.layout.spinner_item, list2);
adp2.setDropDownViewResource(R.layout.my_spinnerlist);
sp2.setAdapter(adp2);
sp2.setSelection(((ArrayAdapter)sp2.getAdapter()).getPosition(default2));

sp1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) {

String item1 = list.get(position);

actorsList = new ArrayList<>();
adapter = new ActorAdapter(Zoznam.this, "Zoznam", R.layout.novinkydata_item, actorsList);
lv.setAdapter(null);lv.setAdapter(adapter); adapter.notifyDataSetChanged();
lv.setVisibility(VISIBLE);
new GetContacts(Zoznam.this).execute(item1,"");


}

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

sp2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) {

String item2 = list2.get(position);

actorsList = new ArrayList<>();
adapter = new ActorAdapter(Zoznam.this, "Zoznam", R.layout.novinkydata_item, actorsList);
lv.setAdapter(null);lv.setAdapter(adapter); adapter.notifyDataSetChanged();
lv.setVisibility(VISIBLE);
new GetContacts(Zoznam.this).execute("",item2);
}

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

那么为什么新的 GetContacts(Zoznam.this).execute... 在 Activity 开始后立即为两个监听器启动?我认为 setOnItemSelectedListener 应该仅在用户与选择交互时启动,但默认情况下不会启动。

我这里有什么问题吗?

PS:当我与第一个微调器交互时,它工作正常,只有 1 个 AsyncTask 被启动,如果我与第二个微调器交互也是如此——只有第二个 AsyncTask 被启动。

问题仅在我开始 Activity 时出现,然后两个 AsyncTask 都在没有与微调器进行任何交互的情况下启动。

最佳答案

当你设置监听器时触发监听器,因为它触发了onItemSelected。

关于Android 微调器 onselect AsyncTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57598664/

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