从 Spinner Class 回调到 FragmentActivity
Callback from Spinner Class to FragmentActivity
我必须知道 Activity 中微调器的点击事件。 MultiSelectionSpinner Class 的 OnClick 方法被调用,但我不知道如何为 Activity 创建回调方法。
以下是 Spinner Class 和 Activity.
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);
最直接的方法是在 MultiSelectionSpinner
中创建您的 Activity 实现的另一个侦听器接口。
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);
...
}
然后在您的 Activity
中实现回调
spinner = (MultiSelectionSpinner) findViewById(R.id.spinner);
spinner.setListener(new MultiSelectionSpinner.MySpinnerListener(){
@Override
public void onClick(int which){
// callback
}
});
我必须知道 Activity 中微调器的点击事件。 MultiSelectionSpinner Class 的 OnClick 方法被调用,但我不知道如何为 Activity 创建回调方法。 以下是 Spinner Class 和 Activity.
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);
最直接的方法是在 MultiSelectionSpinner
中创建您的 Activity 实现的另一个侦听器接口。
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);
...
}
然后在您的 Activity
中实现回调spinner = (MultiSelectionSpinner) findViewById(R.id.spinner);
spinner.setListener(new MultiSelectionSpinner.MySpinnerListener(){
@Override
public void onClick(int which){
// callback
}
});