編輯:關於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回顯
Android 手機衛士--獲取聯系人信息並顯示與回顯,android回顯前面的文章已經實現相關的布局,本文接著進行相關的功能實現 本文地址:http://www.cnb
Android自定義控件:下拉菜單的實現與優化
Android自定義控件:下拉菜單的實現與優化 下拉菜單 美團首頁類似的下拉彈出菜單工程中經常遇到的控件,不同工程中菜單條目的類型與數量也不一樣 所以需要根據實際需要填
Android性能優化之使用線程池處理異步任務
Android性能優化之使用線程池處理異步任務 說到線程,我想大家都不陌生,因為在開發時候或多或少都會用到線程,而通常創建線程有兩種方式: 1、繼承Thread類
MSM8909+Android5.1.1鍵盤驅動淺析
MSM8909+Android5.1.1鍵盤驅動淺析 MSM8909+Android5.1.1鍵盤驅動------概述 采用SN7326帶智能指掃描的鍵