getArguments() 返回 null Android studio

发布于 2025-01-17 09:55:43 字数 1918 浏览 1 评论 0原文

我正在尝试使用捆绑包将字符串值从活动传递到片段,但是getArguments()返回null,因此对我而言有效工作。 (应用程序从mainActivity2)

片段代码:

public class ProfileFragment extends Fragment {


TextView results;
    public ProfileFragment() {
        // Required empty public constructor
    }

    @Override
    public void onSaveInstanceState(@NonNull Bundle outState) {
        super.onSaveInstanceState(outState);


    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       setRetainInstance(true);

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {        
        String strtext = getArguments().getString("edttext");
       
        return inflater.inflate(R.layout.fragment_profile, container, false);

    }
}

mainActivity2代码:

public class MainActivity2 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
    }
    
    public void Clicked(View view) {
        Bundle bundle = new Bundle();
        bundle.putString("edttext", "From Activity");

// set Fragmentclass Arguments
ProfileFragment profileFragment = new ProfileFragment();
profileFragment.setArguments(bundle);
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent);
}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////

I'm trying to use bundle to pass a string value from activity to fragment but getArguments() returns null so it dosent work for me.
( app starts from MainActivity2)

fragment code:

public class ProfileFragment extends Fragment {


TextView results;
    public ProfileFragment() {
        // Required empty public constructor
    }

    @Override
    public void onSaveInstanceState(@NonNull Bundle outState) {
        super.onSaveInstanceState(outState);


    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       setRetainInstance(true);

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {        
        String strtext = getArguments().getString("edttext");
       
        return inflater.inflate(R.layout.fragment_profile, container, false);

    }
}

MainActivity2 code:

public class MainActivity2 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
    }
    
    public void Clicked(View view) {
        Bundle bundle = new Bundle();
        bundle.putString("edttext", "From Activity");

// set Fragmentclass Arguments
ProfileFragment profileFragment = new ProfileFragment();
profileFragment.setArguments(bundle);
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent);
}
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一影成城 2025-01-24 09:55:43

在第一个活动中:

Intent intent = new Intent(MainActivity.this, SecondActivity.class);

Bundle bundle = new Bundle();
bundle.putString("name", name);
bundle.putString("my_aa", my_aa);
intent.putExtras(bundle);

startActivity(intent);

在第二个活动中:

Bundle bundle = getIntent().getExtras();

    if(bundle != null)
    {
        String name = bundle.getString("name");
        String aa = bundle.getString("my_aa");
    }

此代码适用于活动,但我不知道它是否适合片段

In the first activity:

Intent intent = new Intent(MainActivity.this, SecondActivity.class);

Bundle bundle = new Bundle();
bundle.putString("name", name);
bundle.putString("my_aa", my_aa);
intent.putExtras(bundle);

startActivity(intent);

In the second activity:

Bundle bundle = getIntent().getExtras();

    if(bundle != null)
    {
        String name = bundle.getString("name");
        String aa = bundle.getString("my_aa");
    }

This code work for activitys but I dont know if it's work for fragments

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文