android78 Fragment和Activity 傳遞資料

來源:互聯網
上載者:User

標籤:

Activity:

package com.itheima.senddata;import android.os.Bundle;import android.app.Activity;import android.app.FragmentManager;import android.app.FragmentTransaction;import android.view.Menu;import android.view.View;import android.widget.EditText;public class MainActivity extends Activity { private Fragment03 fg3; private EditText et_main; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_main = (EditText) findViewById(R.id.et);//Activity的文本控制項 fg3 = new Fragment03(); //擷取fragment管理器 FragmentManager fm = getFragmentManager(); //開啟事務 FragmentTransaction ft = fm.beginTransaction(); //把內容顯示至幀布局 ft.replace(R.id.fl, fg3); //提交 ft.commit(); } public void click1(View v){ //把fragment01的介面顯示至幀布局中 //建立fragment對象 Fragment01 fg1 = new Fragment01(); //擷取fragment管理器 FragmentManager fm = getFragmentManager(); //開啟事務 FragmentTransaction ft = fm.beginTransaction(); //把內容顯示至幀布局 ft.replace(R.id.fl, fg1); //提交 ft.commit(); } public void click2(View v){ //把fragment01的介面顯示至幀布局中 //建立fragment對象 Fragment02 fg2 = new Fragment02(); //擷取fragment管理器 FragmentManager fm = getFragmentManager(); //開啟事務 FragmentTransaction ft = fm.beginTransaction(); //把內容顯示至幀布局 ft.replace(R.id.fl, fg2); //提交 ft.commit(); } public void click3(View v){ //把fragment01的介面顯示至幀布局中 //擷取fragment管理器 FragmentManager fm = getFragmentManager(); //開啟事務 FragmentTransaction ft = fm.beginTransaction(); //把內容顯示至幀布局 ft.replace(R.id.fl, fg3); //提交 ft.commit(); } public void click4(View v){//Activity的Button控制項 String text = et_main.getText().toString(); //傳遞資料,setText是fg3的方法 fg3.setText(text); } public void setText(String text){ et_main.setText(text); }}

fragment01:

package com.itheima.senddata;import android.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.Button;import android.widget.EditText;public class Fragment01 extends Fragment {    //返回的view對象會作為fragment01的內容顯示在螢幕上    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,            Bundle savedInstanceState) {        View v = inflater.inflate(R.layout.fragment01, null);                final EditText et = (EditText) v.findViewById(R.id.et);//Fragment01的控制項        Button bt = (Button) v.findViewById(R.id.bt);        bt.setOnClickListener(new OnClickListener() {        //Fragment不是在context,所以click用監聽,不直接寫函數,因為直接寫函數是在Activity中的。            @Override            public void onClick(View v) {                String text = et.getText().toString();                //把資料傳遞給activity,getActivity()拿到與Fragment關聯的Activity,setText是Activity的方法                ((MainActivity)getActivity()).setText(text);                            }        });        return v;    }}

fragment03:

package com.itheima.senddata;import android.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;public class Fragment03 extends Fragment {    private TextView tv;    //返回的view對象會作為fragment03的內容顯示在螢幕上    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,            Bundle savedInstanceState) {        // TODO Auto-generated method stub        View v = inflater.inflate(R.layout.fragment03, null);        tv = (TextView) v.findViewById(R.id.tv);//Fragment03的控制項        return v;    }        public void setText(String text){        tv.setText(text);    }}

 

android78 Fragment和Activity 傳遞資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.