編輯:關於android開發
今天我遇到一個問題,就是在activity中需要動態改變fragment中的控件,以前看到過可以在activity中得到fragment實例,然後修改控件;
今天實驗了一個新的辦法,通過新的辦法,就是通過本地廣播;
1.在Fragment中編寫廣播接收器
public class ShouYeFragment extends Fragment { private ListView listView; private List<BoWen> list=new ArrayList<BoWen>(); private BoWenAdapter adapter; private WeiBoDataBase weiBoDataBase=WeiBoDataBase.getInstance(getContext()); public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); View view=inflater.inflate(R.layout.shouye_view,container,false); listView= (ListView) view.findViewById(R.id.bowen_list); return view; } public List<BoWen> getBoWen(){ List<BoWen> list1=new ArrayList<BoWen>(); List<String> bPhone=weiBoDataBase.getBPhone(MainActivity.getYonghuming()); for (String bphone: bPhone){ for(BoWen boWen:weiBoDataBase.getBoWen(bphone)){ list1.add(boWen); } } return list1; } public class ShouYeBroadCastReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { list=getBoWen(); adapter=new BoWenAdapter(getContext(),R.layout.bowen_view,list); listView.setAdapter(adapter); } } }
在activity中注冊發送本地廣播
public class MainActivity extends FragmentActivity { private ShouYeFragment shouYeFragment; private FragmentManager manager; private FragmentTransaction transaction; private LocalBroadcastManager broadcastManager; private ShouYeFragment.ShouYeBroadCastReceiver shouYeBroadCastReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_view); shouYeFragment=new ShouYeFragment(); manager=getSupportFragmentManager(); broadcastManager = LocalBroadcastManager.getInstance(this); shouYeBroadCastReceiver=shouYeFragment.new ShouYeBroadCastReceiver(); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("android.intent.action.ShouYe_BROADCAST"); broadcastManager.registerReceiver(shouYeBroadCastReceiver, intentFilter); transaction=manager.beginTransaction(); transaction.add(R.id.zhuyaoneirong_layout,shouYeFragment); transaction.addToBackStack(null); transaction.commit(); init(); } private void init(){ Intent intent1=new Intent("android.intent.action.ShouYe_BROADCAST"); broadcastManager.sendBroadcast(intent1); } @Override protected void onDestroy() { super.onDestroy(); broadcastManager.unregisterReceiver(shouYeBroadCastReceiver); } }
Android 手機衛士--獲取聯系人信息並顯示與回顯,android回顯前面的文章已經實現相關的布局,本文接著進行相關的功能實現 本文地址:http://www.cnb
Android自定義控件:下拉菜單的實現與優化 下拉菜單 美團首頁類似的下拉彈出菜單工程中經常遇到的控件,不同工程中菜單條目的類型與數量也不一樣 所以需要根據實際需要填
Android性能優化之使用線程池處理異步任務 說到線程,我想大家都不陌生,因為在開發時候或多或少都會用到線程,而通常創建線程有兩種方式: 1、繼承Thread類
MSM8909+Android5.1.1鍵盤驅動淺析 MSM8909+Android5.1.1鍵盤驅動------概述 采用SN7326帶智能指掃描的鍵