在Android Studio中实现ArrayList的最佳方式

时间:2017-07-04 03:13:18

标签: java android arraylist onitemselectedlistener

我在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) {

        }
    });

谢谢你,对不起,我发现这是一个非常复杂的问题。

2 个答案:

答案 0 :(得分:4)

您可以在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);
}

答案 1 :(得分:2)

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

在strings.xml中

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

在spinner的xml布局中

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