簡單回調介面執行個體,回調執行個體
回調介面
<span style="font-size:18px;">/** * 回調介面 * @author Chillax K. */public interface ReCallBack {public void doSomething();}</span>實作類別
<span style="font-size:18px;">/** * 回調介面 * @author Chillax K. */@TargetApi(Build.VERSION_CODES.HONEYCOMB)public class MyFragment extends Fragment {public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.message_layout,container, false);view.findViewById(R.id.button1).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubToast.makeText(getActivity(), "點擊回調按鈕,調用回呼函數", 0).show();if(myReCallBack != null){myReCallBack.doSomething();}}});return view;}private ReCallBack myReCallBack;public void setMyReCallBack(ReCallBack myReCallBack) {this.myReCallBack = myReCallBack;}}</span>被回調類
<span style="font-size:18px;">/** * 回調介面 * @author Chillax K. */@TargetApi(Build.VERSION_CODES.HONEYCOMB)public class MainActivity extends Activity {/** * 用於展示訊息的Fragment */private MyFragment messageFragment;/** * 用於對Fragment進行管理 */private FragmentManager fragmentManager;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//設定無標題requestWindowFeature(Window.FEATURE_NO_TITLE);//設定全屏//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, // WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView(R.layout.activity_main);fragmentManager = getFragmentManager();FragmentTransaction transaction = fragmentManager.beginTransaction();messageFragment = new MyFragment();//設定回調變數messageFragment.setMyReCallBack(mReCallBack);transaction.add(R.id.content, messageFragment);transaction.commit();}ReCallBack mReCallBack = new ReCallBack() {@Overridepublic void doSomething() {// TODO Auto-generated method stubToast.makeText(getBaseContext(), "回調了MainActivity", 0).show();}};</span>代碼比較簡單,不懂可以下源碼看看