在哪里声明微调器的项目数组

时间:2014-01-17 06:17:14

标签: android arrays android-spinner

我一直在为我的应用程序使用微调器,但我不知道在哪里声明要在微调器中显示的项目,即我在string.xml或我的main_activity中声明它们是这样的。 。

String[] data = { "Hello", "There", "I", "Am", "Taking", "Values" };

最好使用哪种方法?为什么?

5 个答案:

答案 0 :(得分:1)

string.xml中声明数组更好,因为:

  1. 如果您想将自己的应用翻译成另一种语言,那么您就是这样 需要这个文件,其中包含您的应用程序使用的所有数组和字符串。
  2. 如果您必须对任何字符串/数组进行任何更改,默认情况下您知道在哪里查找(全部在一个地方)。
  3. 使用这种方式可以重复使用。在任何其他活动中,您可以从那里使用,而不是再次声明。

答案 1 :(得分:1)

在strings.xml中的资源标签中声明值之后,如下所示:

 <string-array name="spinner_values">
    <item>a</item>
    <item>b</item>
</string-array>

您可以在xml布局中的spinner标记中使用entrys属性,而不是在Java文件中以编程方式使用它。如下所示:

 <Spinner
            android:id="@+id/my_spinner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:entries="@array/spinner_values" />

答案 2 :(得分:0)

你可以这样试试......

    public void addItemsOnSpinner1() {

        spinner1 = (Spinner) findViewById(R.id.spinner1);
        List<String> list = new ArrayList<String>();
        list.add("Small");
        list.add("Medium");
        list.add("Large");
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, list);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner1.setAdapter(dataAdapter);
      }

    public void addListenerOnSpinnerItemSelection() {
        spinner1 = (Spinner) findViewById(R.id.spinner1);
        apply = (Button) findViewById(R.id.apply);
        spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener());


        apply.setOnClickListener(new OnClickListener() {

              @Override
              public void onClick(View v) {

                  if(String.valueOf(spinner1.getSelectedItem()).equals("Small"))
                      {
// your code



                      }
                  if(String.valueOf(spinner1.getSelectedItem()).equals("Medium"))

              {
              // your code

              }

              else if(String.valueOf(spinner1.getSelectedItem()).equals("Large"))
              {
// your code

              }



              }

            });

答案 3 :(得分:0)

如果spinner的内容已修复,请在String.xml中声明。最佳实践

答案 4 :(得分:0)

你应该在strings.xml中声明数组

<string-array name="data">
        <item>Hello</item>
        <item>There</item>
        <item>I am</item>
        <item>Taking</item>
    </string-array>

并获取活动中的值

String [] array =getResources().getStringArray(R.array.data);