0

我目前正在做一个需要我在标签/片段之间移动数据的项目。让我们假设用户点击listView项目,它们将移动到另一个标签留在同一个标​​签中。我可以知道我该怎么做到这一点?有人可以帮助解决我的查询?谢谢!Android Studio - 在标签/片段内移动数据

回答

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)使用接口次使用的界面来传递数据对象。网状的解决方案

Read more

public interface onDataCHange{ 
    public void updateData(String data); 
} 

2)使用活动课 - 在活动课Store模式对象以及设置和获取使用活动实例。快速和肮脏的解决方案

Read more

//Get 
    Object dataModel = (ContainerActivity) getActivity()).getData(); 

    //Set 
    ((ContainerActivity) getActivity()).setData(dataModel); 

3)清洁架构 - 中心库保持模型对象。通过Singleton Center存储库对象查看更新模型。整个应用程序之间的数据流的单个副本。

Read more

@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); 
    } 
}