如何将数据从 Android Activity 发送到 Fragment [重复]
Posted
技术标签:
【中文标题】如何将数据从 Android Activity 发送到 Fragment [重复]【英文标题】:how to send data from Android activity to Fragment [duplicate] 【发布时间】:2021-02-07 18:27:01 【问题描述】:我想将数据从 LoginActivity 发送到 FragmentIndividual。 想了两天了,还是没解决。 我不知道为什么会发生 NullPointer。 如果您能将代码附在一起,我将不胜感激。
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
// Initialize Firebase Auth
mAuth = FirebaseAuth.getInstance();
FragmentManager fragmentManager = getSupportFragmentManager();
final FragmentTransaction t = fragmentManager.beginTransaction();
final FragmentIndividual fragmentIndividual = new FragmentIndividual();
login_btn = (Button)findViewById(R.id.signIn);
e1 = (EditText)findViewById(R.id.idText);
login_btn.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
Bundle b2 = new Bundle();
b2.putString("email", e1.getText().toString());
fragmentIndividual.setArguments(b2);
t.add(R.id.fram1234, fragmentIndividual);
t.commit();
);
TextView signup = (TextView) findViewById(R.id.signUp);
signup.setOnClickListener(new TextView.OnClickListener()
@Override
public void onClick(View v)
Intent signupIntent = new Intent(getApplicationContext(), SignupActivity.class);
startActivity(signupIntent);
);
findViewById(R.id.signIn).setOnClickListener(onClickLisener);
findViewById(R.id.pwResetBtn).setOnClickListener(onClickLisener);
public class FragmentIndividual extends Fragment
TextView t1;
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
View v = inflater.inflate(R.layout.fragment_individual, container, false);
t1 = (TextView)v.findViewById(R.id.emailTv);
Bundle b3 = getArguments();
String email = b3.getString("email");
t1.setText(email);
return inflater.inflate(R.layout.fragment_individual, container, false);
【问题讨论】:
这能回答你的问题吗? Send data from activity to fragment in android 你应该在onCreateView中返回已经充气的v,而不是再次充气。 您可以尝试将这一行final FragmentTransaction t = fragmentManager.beginTransaction();
移动到登录按钮的 onClick()
方法中。
请不要发布错误图片,将错误发布为文本。另外,你确定这是你创建这个 Fragment 的唯一地方吗?
【参考方案1】:
在下面的片段示例中创建方法构造函数:
public class ExampleFragment extends Fragment
String currency;
List<model> list ;
public ExampleFragment(List<model> list , String currency)
this.list = list;
this.currency=currency;
【讨论】:
这是一个糟糕的建议。这只会导致更多的崩溃,因为Fragment
s 必须有无参数的构造函数。以上是关于如何将数据从 Android Activity 发送到 Fragment [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据从 Android Activity 发送到 Fragment [重复]
Android如何成功截击请求,如何将数据从Activity传递到Fragment?
Kotlin 上的 Android:如何将数据从 Activity 传递到事件监听器?