我有一个带有3个微调器的自定义listView。我想在onItemSelcted中执行代码,但无法在适配器中执行此操作,因为我需要执行的部分代码在适配器中不起作用。
我之前将此代码固定在按钮上,但有时列表中有20-30个以上的元素,因此我需要在用户从微调器中选择一个值后立即“自动”执行此操作,以节省一些时间。
对于按钮,我有以下代码:
((ListView) parent).performItemClick(v, position, 0);
。在适配器中使用此代码后,我可以通过编写如下代码来排除适配器之外的任何代码:
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之间没有“链接”。当然,在适配器的onItemSelcted内编写同一行代码是行不通的,因为微调框“不单击”。
任何想法如何解决这个问题?
简而言之:我需要对自定义listView元素内部的微调器执行onItemSelected,但需要在onCreate方法的适配器外部执行此操作。
答案 0 :(得分:0)
您可以创建一个CallbackInterface并在其“外部”创建一个实例,然后将其传递给“内部”,在其中使用所需的参数调用回调函数。
public interface Callback {
void onAction (int a, int b, String c);
}