【发布时间】:2019-12-28 19:42:26
【问题描述】:
我有一个带有 3 个微调器的自定义 listView。我想在 onItemSelected 中执行代码,但我不能在适配器中执行此操作,因为我需要执行的某些部分代码在适配器中不起作用。
我之前将此代码固定到一个按钮上,但有时列表中有超过 20-30 个元素,我需要在用户从微调器中选择一个值后立即“自动”执行此操作以节省一些时间。
对于一个按钮,我有这个代码:
((ListView) parent).performItemClick(v, position, 0);
在我在适配器中创建的 setOnClickListener 中。在适配器中使用此代码后,我可以通过编写如下代码来执行适配器外部的任何代码:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
long viewId = view.getId();
if(viewId == R.id.button){
myCode(); }
我发现没有办法做类似的事情,因为内部适配器 onItemSelcted 和外部适配器 onItemSelcted 之间没有“链接”。当然,在适配器的 onItemSelected 中编写相同的代码行是行不通的,因为微调器“不点击”。
知道如何解决这个问题吗?
简而言之:我需要为自定义 listView 元素内部的微调器执行 onItemSelected,但需要在 onCreate 方法中的适配器外部执行此操作。
【问题讨论】:
标签: java android listview spinner