【问题标题】:Best way to implement ArrayList in Android Studio在 Android Studio 中实现 ArrayList 的最佳方法
【发布时间】:2017-12-07 08:41:08
【问题描述】:

我在 ArrayList 中有 30 个项目,它在 Spinner 中实现,我把它放在这样的 java 文件中

ArrayList<String> listProblemSolving = new ArrayList<>();
    listProblemSolving.add("List1");
    listProblemSolving.add("List2");
    listProblemSolving.add("List3");
    listProblemSolving.add("List4");
    listProblemSolving.add("List5");
    listProblemSolving.add("List6");
    listProblemSolving.add("List7");
    ...
    ArrayAdapter<String> adapterProblemSolving = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_dropdown_item, listProblemSolving);

我像这样在微调器中实现

sp.setAdapter(adapterProblemSolving);

问题是,我可以将列表项存储在字符串文件中吗? 如果我想对项目列表进行不同的操作,有什么简单的方法吗,例如我试试这个

    sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
             if (position == 1)
                // do something

             if (position == 2)
                // do something

             ...
        }

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

        }
    });

谢谢你,很抱歉你发现这是重复的问题。

【问题讨论】:

    标签: java android arraylist onitemselectedlistener


    【解决方案1】:

    您可以在您的 strings.xml 文件中创建一个字符串数组并在您的适配器中使用它。

    示例如下:

    <resources>
       <string-array name="numbers">
          <item>1</item>
          <item>2</item>
          <item>3</item>
          <item>4</item>
       </string-array>
    </resources>
    

    在您的活动中,您可以像以下代码一样使用它:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        String[] numbers = getResources().getStringArray(R.array.numbers);
        Spinner spinner = (Spinner) findViewById(R.id.spinner);
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, 
          android.R.layout.simple_spinner_dropdown_item, numbers);
        spinner.setAdapter(adapter);
    }
    

    【讨论】:

      【解决方案2】:

      好吧,如果你的条目是简单的字符串,那么你可以试试这个

      在您的 strings.xml 中

      <string-array name="data_array">
         <item>value 1</item>
         <item>value 2</item> 
         <item>value 3</item>
       </string-array>
      

      在微调器的 xml 布局中

      <Spinner  
       ... 
       ...
      android:entries="@array/data_array" />
      

      【讨论】:

      • 谢谢,但如果我以编程方式创建微调器,我该如何实现它?
      • 你必须使用适配器。您可以直接使用 xml 中的 string_array。 Arrayadapter.createFromResource(....)
      猜你喜欢
      • 2013-01-22
      • 2013-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 2010-10-14
      相关资源
      最近更新 更多