Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android Studio中实现ArrayList的最佳方法_Java_Android_Arraylist_Onitemselectedlistener - Fatal编程技术网

Java 在Android Studio中实现ArrayList的最佳方法

Java 在Android Studio中实现ArrayList的最佳方法,java,android,arraylist,onitemselectedlistener,Java,Android,Arraylist,Onitemselectedlistener,我在ArrayList中有30个项目,在Spinner中有它的实现,我将它放在java文件中,如下所示 ArrayList<String> listProblemSolving = new ArrayList<>(); listProblemSolving.add("List1"); listProblemSolving.add("List2"); listProblemSolving.add("List3"); listProblemSo

我在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);
问题是,我可以将列表项存储在strings文件中吗? 如果我想给项目列表提供不同的操作,有没有简单的方法,例如,我尝试一下这个方法

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

        }
    });
sp.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
如果(位置==1)
//做点什么
如果(位置==2)
//做点什么
...
}
@凌驾
未选择公共无效(AdapterView父级){
}
});

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

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

在您的strings.xml中

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

值1
价值2
价值3
在微调器的xml布局中

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

您可以在strings.xml文件中创建字符串数组,并在适配器中使用该数组

以下是一个例子:

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

1.
2.
3.
4.
在活动中,您可以像以下代码一样使用它:

@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);
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
String[]numbers=getResources().getStringArray(R.array.numbers);
微调器微调器=(微调器)findViewById(R.id.Spinner);
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_微调器_下拉列表_项目,数字);
旋转器。设置适配器(适配器);
}

谢谢,但如果我以编程方式创建微调器,如何实现它呢?您必须使用适配器。您可以直接使用xml中的字符串数组。Arrayadapter.createFromResource(..)