【问题标题】:how to send data from Android activity to Fragment [duplicate]如何将数据从 Android Activity 发送到 Fragment [重复]
【发布时间】: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 的唯一地方吗?

标签: android android-activity 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;
}
}

【讨论】:

  • 这是一个糟糕的建议。这只会导致更多的崩溃,因为Fragments 必须有无参数的构造函数。
猜你喜欢
  • 1970-01-01
  • 2019-07-17
  • 1970-01-01
  • 2013-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多