2016-07-25 82 views
1

我有兩個類:fragmentMyListAdapter(陣列適配器)。哪裏使用方法onItemSelected

在哪個班級我必須使用方法onItemSelected

MyListAdapter不行.....

這是我的代碼:

陣列適配器:

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 = spinner.getSelectedItem().toString(); 
     System.out.println(selState); 
     Toast.makeText(
       getContext(), 
       "Clicked on Planet: " + selState + "", Toast.LENGTH_SHORT).show(); 
     /* Toast.makeText(parent.getContext(), 
       "OnItemSelectedListener : " + parent.getItemAtPosition(position).toString(), 
       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) { 

    }*/ 

    } 

片斷:

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the custom_spinner_items for this fragment 
     //super.onDestroy(); 

     SharedPreferences settings = getContext().getSharedPreferences("states", Context.MODE_PRIVATE); 
     SharedPreferences.Editor editor = settings.edit(); 
     editor.clear(); 
     editor.commit(); 
     ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_list2, container, false); 
     listView = (ListView) rootView.findViewById(R.id.listview); 
     ListAdapter listAdapter = new MyListAdapter(getContext()); 
     listView.setAdapter(listAdapter); 

enter image description here

+0

你想實現'setOnItemSelectedListener'或'setOnItemClickListener' –

+0

setOnItemSelectedListener –

+1

您是否收到錯誤?或onItemSelected不工作? –

回答

1

將下面的代碼用於適配器文件。

public class MyListAdapter extends ArrayAdapter { 
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(new AdapterView.OnItemSelectedListener() { 

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

      //  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; 
    } 

} 
+0

不工作..... –

+0

@幫我請... –

+0

不工作........ ... –