有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在安卓中的片段和活动之间共享数据

我是安卓新手
有谁能告诉我,是否可以使用java接口在活动和片段之间共享数据。我已经学习了OOP,但我仍然停留在接口和抽象类上。我认为如果我在许多活动上实现一个类,我将能够共享数据,比如从一个活动传递数据和从另一个活动获取数据
我说得对吗?请帮帮我


共 (3) 个答案

  1. # 1 楼答案

    对于中间活动,您可以输入以下额外值:

    Intent intent = new Intent (this, newActivity.class);
    intent.putExtra("someKey", someValue);
    intent.putExtra(bundle);
    startActivity(intent);
    

    要让它进入你的活动:

    getIntent().getExtra("someKey");
    

    对于在片段之间移动值,我建议使用bundle:

    //Where mainlayout is the top level id of your xml layout and R.id.viewProfile is the id of the action within your navigation xml.
           NavController navController = Navigation.findNavController(getActivity(), R.id.mainlayout);
                                        Bundle bundle = new Bundle();
                                        bundle.putString("uid",snapshot.getKey());
                                        navController.navigate(R.id.viewProfile,bundle);
    

    要在片段中检索此值:

    String game = getArguments().getString("game");
    

    希望这能有所帮助

  2. # 2 楼答案

    Android有设置和获取活动和片段中数据的标准

    在活动之间发送数据

    Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
    Bundle b = new Bundle();
    b.putInt("YOUR_INT", 1);
    b.putString("YOUR_STRING", "Hello");
    intent.putExtras(b);
    startActivity(intent);
    

    将数据从活动发送到片段

    // Declare a static method on your fragment 'New Instance'
    public static MyFragment newInstance(int yourInt, String yourString) {
        MyFragment myFragment = new MyFragment();
    
        Bundle args = new Bundle();
        args.putInt("YOUR_INT_KEY", yourInt);
        args.putString("YOUR_STRING_KEY", yourString);
        myFragment.setArguments(args);
    
        return myFragment;
    }
    
    // Get the data inside your fragment
    getArguments().getInt("YOUR_INT_KEY", 0); //Default value is zero if no int was found
    
    
    // Instantiate your fragment wherever
    MyFragment f = MyFragment.newInstance(1, "Hello");
    
    
  3. # 3 楼答案

    使用intent,它们使用putExtra()和getExtra()传递和接收信息,或者在使用jetpack导航库时,可以将它们作为NavArgs()传递

    intents in java

    navigation