我目前正在做一个需要我在标签/片段之间移动数据的项目。让我们假设用户点击listView项目,它们将移动到另一个标签留在同一个标签中。我可以知道我该怎么做到这一点?有人可以帮助解决我的查询?谢谢!Android Studio - 在标签/片段内移动数据
0
A
回答
0
您可以通过设置trasnfer选项卡之间的数据和获得参数, 这里是举例
FragmentTwo fragmentTwo = new FragmentTwo();
Bundle bundle = new Bundle();
bundle.putString("key1", "data1");
bundle.putString("key2", "data2");
bundle.putString("key3", "data3");
fragmentTwo.setArguments(bundle);
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.main_container, fragmentTwo);
fragmentTransaction.commit();
0
有3种方法可以做到这一点
1)使用接口次使用的界面来传递数据对象。网状的解决方案
public interface onDataCHange{
public void updateData(String data);
}
2)使用活动课 - 在活动课Store模式对象以及设置和获取使用活动实例。快速和肮脏的解决方案
//Get
Object dataModel = (ContainerActivity) getActivity()).getData();
//Set
((ContainerActivity) getActivity()).setData(dataModel);
3)清洁架构 - 中心库保持模型对象。通过Singleton Center存储库对象查看更新模型。整个应用程序之间的数据流的单个副本。
@Singleton
public class UserDataRepository implements UserRepository {
private final UserDataStoreFactory userDataStoreFactory;
private final UserEntityDataMapper userEntityDataMapper;
/**
* Constructs a {@link UserRepository}.
*
* @param dataStoreFactory A factory to construct different data source implementations.
* @param userEntityDataMapper {@link UserEntityDataMapper}.
*/
@Inject
UserDataRepository(UserDataStoreFactory dataStoreFactory,
UserEntityDataMapper userEntityDataMapper) {
this.userDataStoreFactory = dataStoreFactory;
this.userEntityDataMapper = userEntityDataMapper;
}
@Override public Observable<List<User>> users() {
//we always get all users from the cloud
final UserDataStore userDataStore = this.userDataStoreFactory.createCloudDataStore();
return userDataStore.userEntityList().map(this.userEntityDataMapper::transform);
}
@Override public Observable<User> user(int userId) {
final UserDataStore userDataStore = this.userDataStoreFactory.create(userId);
return userDataStore.userEntityDetails(userId).map(this.userEntityDataMapper::transform);
}
}