gpt4 book ai didi

java - android - Spinner setOnItemClickListener 不接受实现 OnItemClickListener 作为参数的命名类

转载 作者:行者123 更新时间:2023-12-02 12:18:43 27 4
gpt4 key购买 nike

在我的 Android 应用程序中,我有一个 Spinner,我尝试检测何时选择一个项目。我知道这可以使用 setOnItemSelectedListener() 方法来完成,但我不明白的是这工作正常:

((Spinner)findViewById(R.Id.mySpinner)).setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
// implement onItemClick here
});

虽然这会给出一个错误,表明该参数“不适用于”Spinner:

((Spinner)findViewById(R.Id.mySpinner)).setOnItemSelectedListener(new MyOnItemSelectedListener());

其中 MyOnItemSelectedListener 是这个,它是我的 MainActivity 中的嵌套类:

private class MyOnItemSelectedListener implements AdapterView.OnItemSelectedListener
{
public MyOnItemSelectedListener() {}

// implement onItemClick here
}

我想要实现的不仅仅是有效的代码 - 我已经拥有了。它的代码易于阅读(由于我的代码中的事物的真实名称和我的 MainActivity 类的结构,使用嵌套类比使用匿名类更具可读性)。

我对java的理解是,这两个本质上应该是同一件事,只是一个类有名称,而另一个没有。

最佳答案

在您的代码中,您使用了 Id (R.Id.mySpinner) 而不是 id (R.id. mySpinner)。

代码中的两种实现都肯定会起作用。

初始化微调器:

Spinner spinner = new Spinner(getActivity());
spinner.setOnItemSelectedListener(new MySpinner());

内部类:

private class MySpinner implements AdapterView.OnItemSelectedListener{

public MySpinner(){}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}
}

这对我来说实际上工作得很好。检查您的 idlayout

关于java - android - Spinner setOnItemClickListener 不接受实现 OnItemClickListener 作为参数的命名类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45962012/

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