2016-07-25 1 views
1

なぜOnItemSelectedは機能しませんarray adapteronItemSelectedに関する問題

の各行にspinnerがあります。 これは私のコードです:

package info.androidhive.materialtabs.activity; 

import android.content.Context; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Spinner; 
import android.widget.Toast; 

import info.androidhive.materialtabs.R; 

/** 
* Created by marco on 24/07/16. 
*/ 

    public class MyListAdapter extends ArrayAdapter implements AdapterView.OnItemSelectedListener { 
     Spinner spinner; 

     /*public MyListAdapter(Context context, int textViewResourceId) { 
      super(context, textViewResourceId); 
     }*/ 

     public MyListAdapter(Context context) { 
      super(context, R.layout.single_listview_item); 
     } 





      @Override 
      public View getView(int position, View convertView, ViewGroup parent) { 
       View row = convertView; 
       System.out.println("ciao"); 

       spinner = (Spinner) convertView.findViewById(R.id.simpleSpinner); 
       ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
         getContext(), 
         R.array.country_arrays, 
         android.R.layout.simple_spinner_item); 
       adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       spinner.setAdapter(adapter); 
       spinner.setOnItemSelectedListener(this); 

    /* 
       spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
    */ 
       /*  @Override 
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
         //Spinner spinner = null; 
         // String selState = (String) ((Spinner) parent).getSelectedItem(); 

         spinner.setSelection(position); 
         String selState = (String) (parent).getSelectedItem(); 
         Toast.makeText(
           parent.getContext(), 
           "Clicked on Planet: " + selState + "", Toast.LENGTH_SHORT).show(); 
        } 

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

        } 


       });*/ 



       return row; 
      } 

     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      spinner.setSelection(position); 
      String selState = (String) (parent).getSelectedItem(); 
      Toast.makeText(
        parent.getContext(), 
        "Clicked on Planet: " + selState + "", Toast.LENGTH_SHORT).show(); 
     } 

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

     } 


     /* @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      String selState = (String) spinner.getSelectedItem(); 
      System.out.println(selState); 
      Toast.makeText(
        getContext(), 
        "Clicked on Planet: " + selState + "", Toast.LENGTH_SHORT).show(); 
     } 

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

     }*/ 

     } 

はFRAGMENT:

listView = (ListView) rootView.findViewById(R.id.listview); 
     ListAdapter listAdapter = new MyListAdapter(getContext()); 
     listView.setAdapter(listAdapter); 
+0

は、リストが空であると思います。あなたのリストビューは??リストビューの各行の – sJy

+0

を表示取得している私は、スピナーを参照してください{、私は選ぶことができますが、私はオブジェクトを選択し、トーストは表示されないので...メソッドが機能しない –

+0

アダプタの完全なコードですか?getCount()などの重要なオーバーライドメソッドがありません。 – sJy

答えて

0

だけ

String selState = spinner.getSelectedItem().toString(); 

変更

String selState = (String) (parent).getSelectedItem();  

....あなたOnItemSelected方法でこれを試してみてください

+0

は動作しません.... –

+0

お願いします、お願いしますか? –

0

これは、onItemSelectedメソッドではなく、getViewメソッドで使用してください。 onItemSelectedメソッドはlistviewのためのものです。

spinner.setOnItemSelectedListener(新AdapterView.OnItemSelectedListener()

@Override 
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 

     String selState = spinner.getSelectedItem().toString(); 
     Toast.makeText(
       parent.getContext(), 
       "Clicked on Planet: " + selState + "", Toast.LENGTH_SHORT).show(); 
    } 

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

    } 

}); 
+0

は動作しません...... –