【问题标题】:Why doesn't OnItemSelectedListener switch by view ID work to find the selected spinner?为什么通过视图 ID 切换 OnItemSelectedListener 不能找到选定的微调器?
【发布时间】:2012-05-06 23:52:51
【问题描述】:

我有 OnItemSelectedListener 类,问题是现在当我从 spinner1 中选择项目时,它没有显示它应该显示的烤面包机文本。 Toast 文本只是为了查看侦听器是否有效而无效。我有两个微调器,我正在尝试从两个微调器中为单个变量获取选定的项目。任何帮助在这里表示赞赏,我已经坚持了几个小时。

我在 buttonlisteners 上使用了这种切换技术,它运行良好,但它们在我的主类活动类中,我不确定它是否依赖于它以及如果它依赖于如何解决它

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

    View v = parent.getSelectedView();
    switch (view.getId()) {

    case R.id.spinner1:
        Toast.makeText( parent.getContext(),
                "Selected item is " + parent.getItemAtPosition(pos).toString(),
                Toast.LENGTH_LONG).show();
        break;
    case R.id.spinner2:
        //Code here
        break;
    default:
        Toast.makeText(parent.getContext(), view.toString(), Toast.LENGTH_LONG).show();
        break;
    }
}

【问题讨论】:

    标签: android view spinner


    【解决方案1】:

    您似乎认为“父”是包含微调器的活动,而“视图”是微调器。他们实际上不是。 “父”是 ListView 或 SpinnerView。 “view”是单独的列表项。

    所以,你想使用

    switch (parent.getId())
    

    检查包含刚刚选择的项目的微调器的 ID。

    【讨论】:

    • 你知道有时候你只是想太多。没有意识到这一点,我感到很愚蠢。整个 View 的事情,我不记得我打算用它做什么。不管怎样,第一次在这里求助,不到10分钟你就给了我答案,我可以拥抱你。现在我可以继续了,谢谢
    • 这是文档。您查找它,它实际上从未“父”是列表视图...您必须从父是 AdapterView> 类型的事实中派生它。 ListView 是 AdapterView 吗?我应该知道吗?
    猜你喜欢
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多