我是android的新手。
任何人都可以告诉我是否可以使用Java接口在活动和片段之间共享数据。我已经研究过OOP,但仍然停留在接口和抽象类中。我认为,如果我在许多活动上实现一个类,我将能够共享数据,例如从一个活动传递数据并从另一个活动获取数据。
我对吗?请帮助我
答案 0 :(得分:1)
对于活动之间,您可以输入如下的额外值:
Intent intent = new Intent (this, newActivity.class);
intent.putExtra("someKey", someValue);
intent.putExtra(bundle);
startActivity(intent);
要在活动中获取它,
getIntent().getExtra("someKey");
对于在片段之间移动值,我建议使用捆绑包:
//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");
希望有帮助。
答案 1 :(得分:0)
使用意图,它们使用putExtra()和getExtra()传递和接收信息,或者,当使用jetpack导航库时,也可以将它们作为NavArgs()传递。
答案 2 :(得分:0)
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");