2017-01-25 14 views
0

私はアンドロイドの初心者です。私はアクティビティで2つのスピナービューを使用しようとしています。エントリはスピナーのドロップダウンで表示されますが、エントリを選択すると、スピナーコントロールには表示されません。私は全面的に検索したが、それは私のために働かなかった。私がやっていることはすべて、次のとおりです。 私の活動のXMLはAndroidスピナーはリストがドロップダウン表示されている間に選択したテキストを表示しません

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_seventy_thirty" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.elecsysindia.montestapp.SeventyThirtyActivity"> 

    <TextView 
     android:text="Division" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/txtDivison" 
     android:textSize="20sp" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="16dp" 
     android:layout_marginRight="16dp" 
     /> 

    <Spinner 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/spinnerDivision" 
     android:layout_marginLeft="32dp" 
     android:layout_alignTop="@+id/txtDivison" 
     android:layout_toRightOf="@+id/txtDivison" 
     android:layout_toEndOf="@+id/txtDivison" /> 
    <TextView 
     android:text="Station" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/txtDivison" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginTop="16dp" 
     android:layout_marginRight="16dp" 
     android:id="@+id/txtStationCode" 
     android:textSize="20sp" 
     /> 
    <Spinner 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/spinnerStation" 
     android:layout_below="@+id/spinnerDivision" 
     android:layout_alignLeft="@+id/spinnerDivision" 
     android:layout_alignStart="@+id/spinnerDivision" 
     android:layout_marginTop="16dp" 
     android:layout_marginStart="48dp" 
     android:layout_marginBottom="16dp" 
     android:layout_marginLeft="48dp" /> 
    <Button 
     android:text="Submit" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/btnSubmit" 
     android:layout_marginLeft="16dp" 
     android:layout_marginTop="16dp" 
     android:layout_alignLeft="@+id/spinnerStation" 
     android:layout_below="@+id/spinnerStation" 
     /> 

</RelativeLayout> 

やクラスのようです:

private static List<String> listDivisions = new ArrayList<String>(); 
private List<String> listStation = new ArrayList<>(); 
Spinner spinnerDivision ; 
Spinner spinnerStation; 
Button btnSubmit; 
ArrayAdapter<String> adapterDivision; 
ArrayAdapter<String> adapterStation; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_seventy_thirty); 
    spinnerDivision = (Spinner) findViewById(R.id.spinnerDivision); 
    spinnerStation = (Spinner) findViewById(R.id.spinnerStation); 
    btnSubmit = (Button) findViewById(R.id.btnSubmit); 
    // adapterDivision = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,listDivisions); 
    adapterDivision = new ArrayAdapter<String>(getApplicationContext(),R.layout.layout_spinner_item,listDivisions); 

    adapterDivision.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinnerDivision.setAdapter(adapterDivision); 
    adapterDivision.notifyDataSetChanged(); 

    adapterStation = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item,listStation); 
    adapterStation.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinnerStation.setAdapter(adapterStation); 
    adapterStation.notifyDataSetChanged(); 

そして、これはリストが更新される方法です。

for (int i = 0; i < subs.length(); i++){ 
        JSONObject subsDetail = subs.getJSONObject(i); 
        ArrayList<String> stnList = new ArrayList<String>(); 
        if(subsDetail != null){ 
         stnList.clear(); 
         String DivCode = subsDetail.getString("divCode"); 
         JSONArray st = subsDetail.getJSONArray("stncode"); 
         String city=""; 
         for (int j=0 ; j<st.length(); j++){ 
          stnList.add(st.getString(j)); 
          city = city.concat(st.getString(j)+"-"); 
         } 
         mapSubscriptions.put(DivCode,stnList); 
         listDivisions.add(DivCode); 
         listStation.addAll(stnList); 

私は、単純なPHPスクリプトと、このデータからデータを取得していますリストに挿入されています。

もソフに関連する問題を検索した後、私は役に立たないの

adapterDivision = new ArrayAdapter<String>(getApplicationContext(),R.layout.layout_spinner_item,listDivisions); 

まだで使用されるスピナーのために別々のレイアウトを使用しようとしました。次のようにlayout_spinner_itemため xmlファイルは次のとおりです。の、textColorを:

<?xml version="1.0" encoding="utf-8"?> 

<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/spinnerItem" 
    android:textSize="20sp" 
    android:gravity="left" 
    android:textColor="#aaddaa" 
    android:padding="5dip" 
    /> 

私もプロパティアンドロイドを設定することにより、テーマ自体のテキストの色の変化を作ってみました。しかし再び成功はない。

<item name="android:textColor">#FF00FF</item> 

なぜスピナーコントロールにテキストが表示されないのか教えてください。

多くの苦労の末、1つのスピナーのテキストが表示されますが、これは直接アクティビティを再開した場合にのみ表示されます。つまり、主なアクティビティからアクティビティに移動せずに表示されます。 2番目のスピナー(spinnerStation)は、テキストをまったく表示しません。両方のスピナーについても同じソースコードです。スクリーンショットをご覧ください。 Entries of spinnerStation which dont show text

+0

adapterStation.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)を削除します。チェックしてください。 –

+0

あなたもスクリーンショットを追加できますかあなたが直面している問題は何ですか?私はこれをスピンナーの項目をクリックすると理解できませんでした。スピンナーなどのテキストを見ることができません –

+0

'onItemSelected'メソッド? – Wizard

答えて

0

text appear in spinnerDivision

あなたがプログラム的位置を選択する必要があります。この

spinnerObject.setSelection(INDEX); 

同様 そして、あなたはあなたのアダプタは、カスタムレイアウトファイルからのTextViewを取得していない、これまでこの

adapterDivision = new ArrayAdapter<String>(getApplicationContext(),R.layout.layout_spinner_item,listDivisions); 

adapterDivision = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_spinner_dropdown_item,listDivisions); 

問題があるを変更する必要があります

+0

お返事ありがとう@Milind。私は同じことを試みたが、まだテキストがスピナーに現れていない。これは私が試みたものです。 'spinnerDivision.setSelection(1); spinnerStation.setSelection(1); 'onCreate、onResume、onStart()で選択を試みましたが、それは助けになりませんでした。 – Param

+0

私の答えを編集して、それを試してみてください。 –

+0

私はこれを試しましたが動作しません。私は、現在のアクティビティを少し変更してスタジオを使って素早く変更を加えると、現在のアクティビティを再開し、spinnerDivisionはテキストを表示しますが、spinnerStationはまったく表示しないことに気づいたことがあります。しかし、私がアプリを再起動してこのアクティビティに移動すると、両方のスピンがテキストを表示しません – Param

関連する問題