2016-04-07 12 views
0

私のスピナーを今すぐ仕事にする方法を見つけようとしています。私のスピナーは値を表示しません。スピナーが開き、各値のスペースがありますが、すべて空白です。私はArrayList<String>String[]配列を使用しようとしましたが、どちらも違いはありませんでしたが、どちらか一方を使用する必要がありますか?私は多くの異なるタイプのArrayAdaptersを試しましたが、どれもうまくいきませんでした。下の私のコードのものは、上記のように最も近いものを扱うものであり、他の3つは私がオンラインで見たものです。私の主な問題は私のアレイアダプターにあると思うが、私は確信していない。ここでAndroid Spinnerは配列を表示していませんが、場所を表示しています

は、ここに私のJavaクラス

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

    engineSpinner = (Spinner)findViewById(R.id.rockets); 
    engineNameList = StagesData.getEngineNameList(); 
    engStrList = engineNameList.toArray(new String[engineNameList.size()]); 

    adapter = new ArrayAdapter<String>(InfoActivity.this, android.R.layout.simple_spinner_item, engStrList); 
    // adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, R.array.array_engines); 
    // adapter = new ArrayAdapter<String>(InfoActivity.this, android.R.layout.simple_dropdown_item_1line, R.id.rockets, engStrList); 
    // adapter = ArrayAdapter.createFromResource(InfoActivity.this, android.R.layout.simple_spinner_item, R.array.engines); 

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    engineSpinner.setAdapter(adapter); 
    engineSpinner.setSelection(0); 

が私のxmlスピナーセットアップ

<TableRow> 
     <TextView 
      android:text="@string/rocket" 
      android:padding="3dp"/> 
     <Spinner 
      android:id="@+id/rockets" 
      android:gravity="right" 
      android:entries="@array/engines" 
      android:clickable="true" 
      android:textColor="@color/colorblack" 
      android:spinnerMode="dropdown" 
      android:backgroundTint="@color/colorPrimary" /> 
    </TableRow> 

され、最終的に、これは私がから引っ張ってみたかった私の文字列の配列ファイルである(私は私の文字列を入れてくださいです-arrayは値のフォルダにある自分のファイルですか、それとも文字列ファイルの中に入っていますか?私は両方見たことがありますか、わかりません)

私の質問を要約すると、ArrayList<String>またはString[]を使用する必要がありますか?ArrayAdapterをセットアップするにはどうすればいいですか?また、文字列配列を配置する必要がありますか?
ありがとうございます!

+0

あなたの問題を助け

ArrayAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.engines)); 

希望解決した正しい方法ですか? –

+0

はい、そうでした。申し訳ありませんが、私はすぐに返答しませんでした。どうもありがとうございます。私はアンドロイドプログラミングの新人で、私の最初のアプリはちょっと複雑すぎて最初のアプリとは思えませんでしたが、それは続いています。ありがとうございました。 –

答えて

0

私はあなたのサンプルを再作成し、だから私の推測では、あなたがStagesData.getEngineNameList()を返しているかどうか確認すべきであるということである

engStrList = new String[]{"a","b","c"}; 
adapter = new ArrayAdapter<String>(InfoActivity.this, android.R.layout.simple_spinner_item, engStrList); 

engStrList = engineNameList.toArray(new String[engineNameList.size()]); 
adapter = new ArrayAdapter<String>(InfoActivity.this, android.R.layout.simple_spinner_item, engStrList); 

を変更する私のために正常に動作します。あなたはどのようなあなたの文字列配列を使用する場合


また、これは、これは

+0

大変ありがとうございました。私は数日間作業していました。私はあなたの最後の提案を試みました、それは完全に働いた。私は私の望むように、私の.getEngineNameList()が文字列配列リストを返さなかったと思います。 –

関連する問題