fragment和activity通信


public class MyFrament extends Fragment { 
   <span style="color:#33CC00;"> /** 
    * 定义回调接口 与activity进行数 据交互 
    */ </span>
   public interface CallBackLenstener { 
    public void onChange(); 
   }
     @Override
   public void onAttach(Activity activity) { 
      //<span style="color:#33CC00;">在onAttach把activity的数据传进fragment </span>
      // Bundle args = getArguments(); 
      // if (null != args) { 
      // /* // * 在这里我们可以将从Acivity收到的数据保存起来,并且显示到Fragment当中。 
      // */ // 
      // } 
       try { 
         cb = (CallBackLenstener) activity; 
       } catch (ClassCastException e) { 
           throw new ClassCastException(activity.to
             String() + " must implement OnButtonClickListener"); 
       }
    super.onAttach(activity);
  }
    @Override      
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
        // TODO Auto-generated method stub      
        View v = inflater.inflate(R.layout.frament_item, container, false);      
        tv = (TextView) v.findViewById(R.id.fra_item);       
        Button btn = (Button) v.findViewById(R.id.btn_frm);        
        btn.setOnClickListener(new OnClickListener() { 
             @Override
            public void onClick(View v) { 
                // TODO Auto-generated method stub 
              if(cb!=null){   
               cb.onChange();         
               } 
            }     
       });    
        tv.setTag("0x123");       
        return v;   
    } 
 }

 

<span style="color:#33FF33;">//activity类</span>

public class DbActivity extends FragmentActivity implements  MyFrament.CallBackLenstener {     
      private MyFrament mf;
         @Override    
      protected void onCreate(Bundle savedInstanceState) {         
          super.onCreate(savedInstanceState);        
          setContentView(R.layout.activity_db);        
          ViewUtils.inject(this);         
          mf = new MyFrament(); 
          add();    
      }    

      public void add(){
          Bundle args = new Bundle();      
          args.putString("hello", "Hello Fragment1");   
          fragment1.setArguments(args);      
          Log.i(TAG, "create Fragment1");       
          FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();     
          transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);  
          transaction.add(R.id.fra, mf);      
          transaction.addToBackStack(null);         
          transaction.commit();  
   } 

      @Override   
   public void onChange() {
  <span style="color:#33CC00;">    //执行回调接口把进行数据交互      
      // TODO Auto-generated method stub
    //得到当前fragment所在activity的实例,再通过实例找到UI    </span>   
       TextView tv1 = (TextView) mf.getActivity().findViewById(R.id.fra_item);  
       tv1.setText(data.getText().toString());  
    }
 } 



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值