【问题标题】:How to make a switch case statement for every element in an array in java?java - 如何为java中数组中的每个元素创建一个switch case语句?
【发布时间】:2015-12-20 09:19:48
【问题描述】:

所以简而言之,我有这个包含城市名称(纽约、旧金山、西雅图等)的数组列表。并且用户添加到该数组中,因此对于每个用户,该数组将具有不同的大小并具有不同的名称。我正在尝试制作一个下拉菜单微调器,为此我需要使用 switch 语句。所以,我不确定如何循环遍历数组列表并为数组的每个元素创建一个 case 语句?有人可以帮忙吗?

干杯~

                        dropDownspinner.setAdapter(citySpinner);
                        dropDownspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                            @Override
                            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l)
                            {
                                switch (i)
                                {
                                    //So i'm wondering how I can use a for loop and make a case for every element in an array.
                                }
                            }

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

                            }
                        });

【问题讨论】:

  • “为此我需要使用 switch 语句”:你是怎么想到这个想法的?
  • @Henry 在每个示例中,我都曾见过在 android 中使用带有数组适配器的微调器制作下拉菜单时,始终使用 switch 语句来制作下拉菜单中的每个项目微调器。我不确定是否有任何其他方式来实现它。但我仍然想知道你是否可以为 arrayList 中的每个元素做一个 case 语句
  • getView(int position){ String name = array.get(position)}.
  • @TheQ .Plz 发布您的示例。
  • @tinysunlight 我添加了我想要做的事情,但我有点迷路了。

标签: android for-loop switch-statement spinner android-arrayadapter


【解决方案1】:

如何将每个用户的城市数据存储在 hashmap 中,其中键是用户名,值是每个用户的城市列表?

例如,如果您将 user1 的城市列表作为 listOfUser1Cities 类型的 List,那么您可以这样做:

Map<String, List<String>> userCities = new HashMap();
userCities.put("user1", listOfUser1Cities);

并检索 user1 数据,当然你可以这样做:

userCities.get("user1");

获取该用户的城市。这种方式不需要 switch-case。

【讨论】:

  • 我放了一些代码。我不确定你的方法是否可行。因为我必须处理在 OnItemSelected() 方法中选择的每个位置,
【解决方案2】:
 dropDownspinner.setAdapter(citySpinner);
                dropDownspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                    @Override
                    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l)
                    {
                       Log.e("selected:",list.get(i))
                    }

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

                    }
                });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多