2017-03-17 8 views
0

1つのアクティビティで2つのスピナーでアンドロイドスタジオでコーディングを行っています。 Itemを選択すると、スピナーの変数が変わってもListenerは呼び出されません。以下はSpinner OnItemSelectedListenerが1つのアクティビティで2つのスピナーで正常に動作しない

(loadSYData機能で)データベースからスピナーを投入しても値を選択するための関連するコードです

public void loadQtrData() { 
    Cursor cursor = myDb.getQtr(); 
    ArrayList<String> qtrLabel = new ArrayList<>(); 
    ArrayAdapter<String> qtrAdapter = new ArrayAdapter<String>(this, R.layout.spinner_item, qtrLabel); 
    qtrAdapter.setDropDownViewResource(R.layout.spinner_item); 
    spinnerQtrParent.setAdapter(qtrAdapter); 
    while(cursor.moveToNext()){ 
     String label = cursor.getString(cursor.getColumnIndex("SC_Quarter")); 
     qtrLabel.add(label); 
    } 
} 

public void loadSYData(){ 
    Cursor cursor = myDb.getSY(); 
    ArrayList<String> syLabel = new ArrayList<>(); 
    ArrayAdapter<String> syAdapter = new ArrayAdapter<String>(this, R.layout.spinner_item, syLabel); 
    syAdapter.setDropDownViewResource(R.layout.spinner_item); 
    spinnerSYParent.setAdapter(syAdapter); 
    while(cursor.moveToNext()){ 
     String label = cursor.getString(cursor.getColumnIndex("SY")); 
     syLabel.add(label); 
    } 
    spinnerSYParent.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      sy = "Success"; 
     } 

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

     } 
    }); 
} 

私はリスナーならば、単に確認するために、成功を言うだろうトーストをも入れています呼び出される。しかし、トーストの手順は実行されません。

答えて

0

カーソルにデータがないか、最初の位置に移動していない可能性があります このコードをチェックして、スピナーイベントが設定されているかどうかを確認してください。

public void loadSYData(){ 
     Cursor cursor = myDb.getSY(); 
     ArrayList<String> syLabel = new ArrayList<>(); 
     ArrayAdapter<String> syAdapter = new ArrayAdapter<String>(this, R.layout.spinner_item, syLabel); 
     syAdapter.setDropDownViewResource(R.layout.spinner_item); 
     spinnerSYParent.setAdapter(syAdapter); 
     // add this line to move cursor to 1st position. 
     cursor.moveToFirst(); 
     while(cursor.moveToNext()){ 
      String label = cursor.getString(cursor.getColumnIndex("SY")); 
      syLabel.add(label); 
     } 
     // Put debug point or print some thing here to confirm 
     spinnerSYParent.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       sy = "Success"; 
      } 

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

      } 
     }); 
    } 
+0

"Toast.makeText(this、" Population "、Toast.LENGTH_SHORT);" Toast.makeText "を試して追加しました。トーストは実行されませんでした。 – schwall

+0

コードを追加しましたか?その後、何らかのエラーがあるはずです。チェックログ – androidnoobdev

+0

W/InputEventReceiver:入力イベントを終了しようとしましたが、入力イベント受信者はすでに破棄されています。 – schwall

関連する問題