編輯:關於Android編程
在Activity中使用setArguments封裝所需傳遞的值,在Fragment中使用getArguments獲取值。
Activity代碼示例
Bundle bundle = new Bundle(); bundle.putString("name", "zhangsan"); fragment_a.setArguments(bundle);//注意,fragment被hide之後,不能使用setArguments方法
Fragment代碼示例
Bundle bundle = getArguments(); if(bundle!=null){ String name = bundle.getString("name"); textview.setText(name); }
在Fragment中可以直接通過getActivity方法獲得宿主Activity對象,然後調用實例方法或實例變量。
Activity代碼示例
//在Activity中創建一個實例方法 public void showTips(){ Toast.makeText(this, "來自fragment的提示請求", Toast.LENGTH_LONG).show(); }
Fragment代碼示例
@Override public void onClick(View v) { MainActivity mActivity = (MainActivity) getActivity();//獲取Activity對象 mActivity.showTips();//調用Activity中的實例方法 }
step1:在AFragment中創建實例方法或實例變量;
step2:在Activity中動態加載AFragment時,調用
add(int containerViewId, Fragment fragment, String tag)方法,tag是這個Fragment的名字,可自定義;
step3:在BFragment中通過
getActivity().getFragmentManager().findFragmentByTag(tag)方法即可獲得對應的Fragment對象,然後調用此Fragment中創建的實例方法或實例變量。
FragmentA代碼示例
FragmentB fb = (FragmentB) getActivity().getFragmentManager().findFragmentByTag("B"); fb.changeTextB();
FragmentB代碼示例
public void changeTextB(){ textview.setText("FragmentB文字已改變"); }
Activity代碼示例
//將兩個fragment添加至事務中,並添加tag ft.add(R.id.frame_content, fragment_a,"A"); ft.add(R.id.frame_content, fragment_b,"B");
注意:
FragmentA中調用FragmentB中的實例方法,一定要保證FragmentB已經提前添加至事務中。
layout_height的作用:首先按照聲明的尺寸分配,剩余的空間再按照layout_weight進行分配一平均分配:代碼:<code class="h
今天在修改一個布局問題時候,發現自己對權重的理解還不夠。首先問題如圖:一個TextView沒有按要求顯示完整,顯示成了2行。怎麼辦呢?方法1:是把它左面的字體放小。結果師
Activity棧主要用於管理Activity的切換。當使用Intent跳轉至某個目標Activity,需要根據目標Activity的加載模式來加載。Activity一共
其實,安卓上使用自定義的字體非常得簡單,在assets文件夾下面,自己定義一個font文件夾,然後,把自己的字體放進去,可以重命名一下,如圖: 這樣