2015-05-03 4 views
0

Мне нужно знать событие click от счетчика в Activity. Вызывается метод OnClick класса MultiSelectionSpinner, но я не знаю, как создать метод обратного вызова для Activity. Следующее - это класс Spinner и Activity.Обратный звонок от класса Spinner до FragmentActivity

public class MultiSelectionSpinner extends Spinner implements 
     OnMultiChoiceClickListener { 
    String[] _items = null; 
    boolean[] mSelection = null; 

    ArrayAdapter<String> simple_adapter; 

    public MultiSelectionSpinner(Context context) { 
     super(context); 

     simple_adapter = new ArrayAdapter<String>(context, 
       android.R.layout.simple_spinner_item); 
     super.setAdapter(simple_adapter); 
    } 

    public MultiSelectionSpinner(Context context, AttributeSet attrs) { 
     super(context, attrs); 

     simple_adapter = new ArrayAdapter<String>(context, 
       android.R.layout.simple_spinner_item); 
     super.setAdapter(simple_adapter); 
    } 

    public void onClick(DialogInterface dialog, int which, boolean isChecked) { 
     if (mSelection != null && which < mSelection.length) { 
      mSelection[which] = isChecked; 

      simple_adapter.clear(); 
      simple_adapter.add(buildSelectedItemString()); 


     } else { 
      throw new IllegalArgumentException(
        "Argument 'which' is out of bounds."); 
     } 
    } 




public class mainActivity extends FragmentActivity 

// Thats the spinner 
MultiSelectionSpinner spinner; 

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

// Here I load the spinner with the Names  
spinner = (MultiSelectionSpinner) findViewById(R.id.spinner); 
spinner.setItems(Names); 

ответ

1

Самый простой способ, чтобы создать другой интерфейс слушателя в MultiSelectionSpinner которые ваша деятельность орудий.

public interface MySpinnerListener{ 
    public void onItemClicked(int which); 
} 

MySpinnerListener listener; 
public void setListener(MySpinnerListener listener) {  
    this.listener = listener;  
} 

public void onClick(int which,...){ 
    listener.onClick(which); 
    ... 
} 

Затем реализовать функцию обратного вызова в вашей деятельности

spinner = (MultiSelectionSpinner) findViewById(R.id.spinner); 
spinner.setListener(new MultiSelectionSpinner.MySpinnerListener(){ 

    @Override 
    public void onClick(int which){ 
     // callback 
    } 
}); 
+0

Великий Trank вас очень много! – user1390816

Смежные вопросы