這篇文章給大家介紹Fragment在Android應(yīng)用中的作用有哪些,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了中牟免費(fèi)建站歡迎大家使用!
1.這個(gè)用法的原因和意義
2.先看看用法
在任何需要登陸的地方調(diào)用我們在Utils中寫的一個(gè)靜態(tài)方法
一次寫好從此輕松調(diào)用
ActivityUtils.startLogin(this, new ActivityUtils.ActivityResultListner() { @Override public void loginsuccess() { ((Button)v).setText("您已登陸"); } @Override public void logincancel() { Toast.makeText(MainActivity.this,"您已取消登陸",0).show(); } });
3.實(shí)現(xiàn)的方式
//用abstract class我們在不需要cancel回掉時(shí)可以不重寫 public abstract static class ActivityResultListner { public void loginsuccess() { } public void logincancel() { } }
2.先定義一個(gè)fragment用于處理回調(diào)
public static class MyFragment extends Fragment { public static final int LOGIN = 123; ActivityResultListner listener; public void setListener(ActivityResultListner listener) { this.listener = listener; } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == LOGIN) { if (resultCode == RESULT_OK) { if (listener != null) listener.loginsuccess(); } else { if (listener != null) listener.logincancel(); } } }
1、回調(diào)的實(shí)現(xiàn)
2、傳進(jìn)的Context 要是FragmentActivity的子類
實(shí)際中
AppcomatActivity Fragment.getActivity()
都是滿足這個(gè)要求的
3、先把frament添加到activity
4、根據(jù)fragment的onActivityResult獲取回調(diào)
public static void startLogin(FragmentActivity context, ActivityResultListner listener) { //先看activity是否添加過該fragment, 添加根據(jù)Tag找出 ,沒有就添加 FragmentManager manager = context.getSupportFragmentManager(); MyFragment myFragment = null; Fragment loginf = manager.findFragmentByTag(MyFragment.LOGIN + ""); if (loginf == null) { myFragment = new MyFragment(); manager.beginTransaction().add(myFragment, MyFragment.LOGIN + "").commit(); //這句是讓commit立即生效,不然運(yùn)行會(huì)報(bào)錯(cuò),fragment還沒有被attach manager.executePendingTransactions(); } else { myFragment = (MyFragment) loginf; } //設(shè)置監(jiān)聽 myFragment.setListener(listener); Intent intent = new Intent(context, loginActivity.class); myFragment.startActivityForResult(intent, MyFragment.LOGIN); }
關(guān)于Fragment在Android應(yīng)用中的作用有哪些就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
分享文章:Fragment在Android應(yīng)用中的作用有哪些
本文路徑:http://jinyejixie.com/article10/igopdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、移動(dòng)網(wǎng)站建設(shè)、App設(shè)計(jì)、定制網(wǎng)站、靜態(tài)網(wǎng)站、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)