【发布时间】:2018-09-02 00:15:46
【问题描述】:
我有一个活动,我有一个按钮可以点击 API。我在显示片段的那个活动中也有一个框架布局。我在片段中的 createView() 上有片段上的一些数据,我想将此数据发送到任何事件处理的活动(我知道接口方法,但片段中没有任何按钮)。现在我想将片段数据带到活动的按钮单击上。这可能吗 ? 请给我一个解释。
class ForgetPass extends Activity {
LinearLayout sendOtp;
ProgressBar progress_bar;
TextView send_otp;
FragmentManager fm = getFragmentManager();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.forget_pass);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// get the data from the fragment
}
});
}
这是我的片段,它只有 textViews,没有任何按钮,我可以在上面实现界面并将数据发送到活动。
class EnterPhone extends Fragment {
EditText mobile;
RequestQueue requestQueue;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.enter_phone, container, false);
//Hit api and only textviews for showing information and need this on activity. On a button click which is itself in activity
return view;
}
}
【问题讨论】:
-
在片段中创建一个方法,该方法将返回您需要的数据,并在活动中调用它
-
或者反过来,在活动中创建一个setter,但前提是你的片段是该活动的一部分
-
在fragment中创建一个方法并获取fragment的实例给父activity在activity中调用这个方法,这个方法做一个你去的返回类型。
-
您可以将该数据保存在 sharedPrefrence 中,然后从 Key 中获取该数据。
标签: android android-fragments android-intent interface bundle