2016-02-19 82 views
-2

我正在练习如何将字符串添加到微调器的加法器。如果我在java活动申报串,完美的作品,但如果我在string.xml做:字符串资源

<string-array name="tabs"> 
    <item>tab</item> 
    <item>tab1</item> 
    <item>tab2</item> 
    <item>tab3</item> 
    <item>tab4</item> 
    <item>tab5</item> 
</string-array> 

,并在java

ArrayAdapter<String> adapterr1 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, R.array.tabs); 

不工作。

有什么问题?由于

这是完整的代码,因为我有问题,白衣应用程序(崩溃)

public class MainActivity extends AppCompatActivity { 

    Spinner OptionSpinner; 
    TextView textview; 


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

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     OptionSpinner = (Spinner) findViewById(R.id.OptionSpinner); 
     textview = (TextView) findViewById(R.id.textview); 

     ArrayAdapter adapter1 = new ArrayAdapter(this, android.R.layout.simple_spinner_item, stabs); 

     adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

     OptionSpinner.setAdapter(adapter1); 

     OptionSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       textview.setText("seleccionado: " + parent.getItemAtPosition(position)); 
       if(position==1){ 
        Intent IntentActT1 = new Intent(MainActivity.this, ActTab1.class); 
        startActivity(IntentActT1); 
       } 
      } 

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

      } 
     }); 


    } 
} 
+0

数组适配器类将列表作为其最终参数。不是资源整数。 –

+0

请参考http://stackoverflow.com/questions/10532907/android-retrieve-string-array-from-resources –

回答

0
String[] stabs= getResources().getStringArray(R.array.tabs); 
ArrayAdapter adapterr1 = new ArrayAdapter(this, android.R.layout.simple_spinner_item, stabs); 

编辑了1

public class MainActivity extends AppCompatActivity { 

Spinner OptionSpinner; 
TextView textview; 
String[] stabs; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    OptionSpinner = (Spinner) findViewById(R.id.OptionSpinner); 
    textview = (TextView) findViewById(R.id.textview); 
    stabs= getResources().getStringArray(R.array.tabs); 

    ArrayAdapter adapter1 = new ArrayAdapter(this, android.R.layout.simple_spinner_item, stabs); 

    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    OptionSpinner.setAdapter(adapter1); 

    OptionSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      textview.setText("seleccionado: " + parent.getItemAtPosition(position)); 
      if(position==1){ 
       Intent IntentActT1 = new Intent(MainActivity.this, ActTab1.class); 
       startActivity(IntentActT1); 
      } 
     } 

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

     } 
    }); 


} 
} 
+0

我想这个,但应用程序崩溃 – Ariel

+0

发布您的完整代码 – sasikumar

+0

好的,谢谢我做到了 – Ariel

0

构造ArrayAdapter<String>(Context, int, int)不使用作为数组资源ID的第三个参数;它使用它作为TextView的ID用于显示布局中的每个项目。相反,您可以通过getStringArray(R.array.tabs)作为第三个参数(或getContext().getStringArray(R.array.tabs),如果此代码不在Activity中)。