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) использовать интерфейсы -use интерфейс для передачи данных объекты. Meshy решение

Read more

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

2) Использование активности Класс - магазин объектная модель в классе деятельности и установить и получить с помощью деятельности Instance. Быстрый и грязный раствор

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); 
    } 
} 
Смежные вопросы