Activity传数据给fragment

1、

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"
    />

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.widget.FrameLayout;
public class MainActivity extends FragmentActivity {
FrameLayout content_frame;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
content_frame = (FrameLayout) findViewById(R.id.content_frame);
getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, new FrameLayoutFragment("传参数"))
.commit();
}
}

2、

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <TextView
        android:id="@+id/frag_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="这是fragment" />
</LinearLayout>

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class FrameLayoutFragment extends Fragment{
View view;
TextView  frag_text;
String aaaa;
public FrameLayoutFragment(String string) {
aaaa  = string;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.frame_layout, container, false);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
initView();
super.onActivityCreated(savedInstanceState);
}
private void initView() {
frag_text = (TextView) view.findViewById(R.id.frag_text);
frag_text.setText(aaaa + "aaa");
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用Bundle来数据。在Activity中,可以创建一个Bundle对象,将需要递的数据放入Bundle中,然后通过setArguments()方法将Bundle对象递给Fragment。在Fragment中,可以通过getArguments()方法获取递过来的Bundle对象,然后从中取出需要的数据。具体代码如下: 在Activity数据: ``` Bundle bundle = new Bundle(); bundle.putString("key", "value"); MyFragment fragment = new MyFragment(); fragment.setArguments(bundle); ``` 在Fragment中获取数据: ``` Bundle bundle = getArguments(); String value = bundle.getString("key"); ``` ### 回答2: 在Android开发中,我们可以通过使用Activity来向Fragment数据。下面是一个简单的示例。 1. 在Activity中,我们可以通过Bundle对象将数据递给Fragment。可以在Activity的onCreate方法中创建一个Bundle对象,将需要递的数据存入bundle中,然后通过Fragment的setArguments方法将bundle递给Fragment。 ```java Bundle bundle = new Bundle(); bundle.putString("key", "value"); MyFragment fragment = new MyFragment(); fragment.setArguments(bundle); ``` 2. 在Fragment中,我们可以通过getArguments方法获取递过来的数据。在Fragment的onCreate方法中,可以通过getArguments方法获取到递过来的bundle对象,然后根据key获取对应的数据。 ```java Bundle bundle = getArguments(); if (bundle != null) { String value = bundle.getString("key"); } ``` 这样,我们就可以在Activity中将数据递给Fragment,并在Fragment中获取到递过来的数据。 需要注意的是,当我们重新创建Fragment的实例时,需要重新设置Arguments,因为FragmentManager在重新创建Fragment实例时并不会复制Arguments。另外,在ActivityFragment的通信过程中,我们需要确保Fragment已经attached到Activity中,否则可能会出现NullPointerException。 这就是通过ActivityFragment数据的基本步骤。希望能对你有所帮助! ### 回答3: 在Android开发中,activity是应用程序中的一个重要组件,而fragment是其中一个UI组件。在进行activityfragment之间的数据递时,可以通过使用bundle和接口回调来实现。 1. 使用Bundle数据Fragment:在Activity中,可以创建一个Bundle对象,并通过put方法向Bundle中放入需要递的数据。然后使用Fragment的setArguments方法将Bundle对象递给Fragment。在Fragment中,通过getArguments方法获取到Bundle对象,并通过get方法获取到递的数据。 例如,在Activity数据Fragment的代码如下: ```java Bundle bundle = new Bundle(); bundle.putString("data", "Hello Fragment"); Fragment fragment = new YourFragment(); fragment.setArguments(bundle); ``` 在Fragment中获取数据的代码如下: ```java Bundle bundle = getArguments(); String data = bundle.getString("data"); ``` 2. 使用接口回调数据Fragment:首先,在Activity中创建一个接口,在该接口中定义一个数据的方法。然后,在Activity中实现该接口,并将实现的接口对象递给Fragment。在Fragment中通过接口对象调用接口中的方法,从而实现数据递。 例如,先定义一个数据的接口: ```java public interface DataCallback { void onDataReceived(String data); } ``` 在Activity中实现该接口并递给Fragment: ```java public class MainActivity extends AppCompatActivity implements DataCallback { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Fragment fragment = new YourFragment(); ((YourFragment) fragment).setDataCallback(this); } @Override public void onDataReceived(String data) { // 在这里处理接收到的数据 } } ``` 在Fragment中调用接口中的方法数据: ```java public class YourFragment extends Fragment { private DataCallback dataCallback; public void setDataCallback(DataCallback dataCallback) { this.dataCallback = dataCallback; } // 在需要的地方调用dataCallback.onDataReceived("Hello Activity"); } ``` 通过以上的方式,就可以实现ActivityFragment数据的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值