Activity和fragment传值问题

Activity传值给Fragment

Fragment  f=new WeatherFragment();
Bundle  data=new Bundle();
data.putString("city",cityList.get(index));
f.setArguments(data);



Fragment向activity中传值

1.在Fragment中写一个回调接口  

2.在activity中实现这个回调接口

3,在Fragment中onAttach 方法中得到activity中实现好的 实例化接口对象

4,用接口的对象  进行传值


代码:

MainActivity:


[java]  view plain  copy
 print ?
  1. package com.qianfeng.fragmenttoactivity;  
  2.   
  3. import com.qianfeng.fragmenttoactivity.Fragmen1.CallBackValue;  
  4.   
  5. import android.os.Bundle;  
  6. import android.annotation.SuppressLint;  
  7. import android.app.Activity;  
  8. import android.app.FragmentManager;  
  9. import android.app.FragmentTransaction;  
  10. import android.view.Menu;  
  11. import android.widget.TextView;  
  12.   
  13. @SuppressLint("NewApi")   
  14. public class MainActivity extends Activity implements CallBackValue{  
  15.   
  16.     private TextView tv1;  
  17.     @Override  
  18.     protected void onCreate(Bundle savedInstanceState) {  
  19.         super.onCreate(savedInstanceState);  
  20.         setContentView(R.layout.activity_main);  
  21.           
  22.         tv1 = (TextView) findViewById(R.id.tv1);  
  23.           
  24.         FragmentManager manager = getFragmentManager();  
  25.         FragmentTransaction transaction = manager.beginTransaction();  
  26.           
  27.         transaction.add(R.id.contents, new Fragmen1());  
  28.         transaction.commit();  
  29.           
  30.     }  
  31.     //要获取的值  就是这个参数的值  
  32.     @Override  
  33.     public void SendMessageValue(String strValue) {  
  34.         // TODO Auto-generated method stub  
  35.         tv1.setText(strValue);  
  36.     }  
  37.   
  38.   
  39.       
  40. }  

Fragment:

[java]  view plain  copy
 print ?
  1. package com.qianfeng.fragmenttoactivity;  
  2.   
  3. import android.annotation.SuppressLint;  
  4. import android.app.Activity;  
  5. import android.app.Fragment;  
  6. import android.os.Bundle;  
  7. import android.view.LayoutInflater;  
  8. import android.view.View;  
  9. import android.view.View.OnClickListener;  
  10. import android.view.ViewGroup;  
  11. import android.widget.Button;  
  12. import android.widget.EditText;  
  13.   
  14. @SuppressLint("NewApi")   
  15. public class Fragmen1 extends Fragment{  
  16.     private Button btn1;  
  17.     private EditText et1;  
  18.     CallBackValue callBackValue;  
  19.       
  20.     /** 
  21.      * fragment与activity产生关联是  回调这个方法  
  22.      */  
  23.     @Override  
  24.     public void onAttach(Activity activity) {  
  25.         // TODO Auto-generated method stub  
  26.         super.onAttach(activity);  
  27.         //当前fragment从activity重写了回调接口  得到接口的实例化对象  
  28.         callBackValue =(CallBackValue) getActivity();  
  29.     }  
  30.       
  31.       
  32.     @Override  
  33.     public View onCreateView(LayoutInflater inflater, ViewGroup container,  
  34.             Bundle savedInstanceState) {  
  35.         // TODO Auto-generated method stub  
  36.         View view = inflater.inflate(R.layout.fragment_layout1, container, false);  
  37.          btn1 = (Button) view.findViewById(R.id.btn1);  
  38.          et1 = (EditText) view.findViewById(R.id.et1);  
  39.          btn1.setOnClickListener(new OnClickListener() {  
  40.               
  41.             @Override  
  42.             public void onClick(View v) {  
  43.                 // TODO Auto-generated method stub  
  44.                 String strValue = et1.getText().toString().trim();  
  45.                 callBackValue.SendMessageValue(strValue);  
  46.               
  47.             }  
  48.         });  
  49.           
  50.         return view;  
  51.     }  
  52.     //定义一个回调接口  
  53.     public interface CallBackValue{  
  54.         public void SendMessageValue(String strValue);  
  55.     }  
  56. }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值