activity 給 fragment 傳遞數據


在activity中加載 frament,並傳遞給它參數
//setArguments //1.實例化Fragment Fragment f1 = new Fragment1(); //2.實例化一個Bundle對象 Bundle bundle = new Bundle(); //3.存入數據到Bundle對象中 bundle.putString("msg1","這是由Activity發往Fragment的數據"); //4.調用Fragment的setArguments方法,傳入Bundle對象 f1.setArguments(bundle); //5.添加/替換顯示的Fragment transaction.replace(R.id.container,f1);

 

在fragment.java, 接收到參數

    //Fragment創建視圖
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        Log.e("TAG","onCreateView--Fragment視圖創建好了");
        View v = inflater.inflate(R.layout.fragment_fragment1, container, false);

        Bundle b = getArguments();
        String msg1 = b.getString("msg1");
        ((TextView)v.findViewById(R.id.txt1)).setText(msg1);

        return v;
    }

 

也可以通過 public void onAttach(Context context)

來得到activity,然后操作activity。

MainActivity.java

public class MainActivity extends AppCompatActivity {
  public
String msg = "How are you ";
}

 

fragment.java

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        String msg = ((MainActivity)context).msg;
        Toast.makeText(context,msg,Toast.LENGTH_SHORT).show();
        Log.e("TAG","onAttach--Fragment與Activity關聯");
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM