0

Ich mache derzeit auf ein Projekt, das erfordert, dass ich meine Daten zwischen Tabs/Fragmente verschieben. Angenommen, der Benutzer klickt auf das Element ListView, sie werden stattdessen auf eine andere Registerkarte verschoben im selben Tab zu bleiben. Darf ich wissen, wie ich das erreichen kann? Kann mir jemand helfen, meine Anfrage zu lösen? Vielen Dank!Android Studio - Daten verschieben innerhalb Tabs/Fragmente

Antwort

0

Sie können Daten zwischen den Registern von Satz trasnfer und Argumente erhalten, Hier ist Beispiel

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

Es gibt 3 Möglichkeiten, um diesen

1) Verwenden Schnittstellen -use Schnittstelle zu tun, Daten zu übergeben Objekte. Meshy Lösung

Read more

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

2) Verwenden Activity Class - Store-Modell Objekt in Aktivitätsklasse und eingestellt und erhalten Aktivität Instanz verwenden. Quick and Dirty Lösung

Read more

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

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

3) Sauber Architektur - Zentrum Repository halten Modellobjekte. Zeigen Sie das Aktualisierungsmodell über das Repository-Objekt Singleton Center an. Einzelkopie des Datenflusses zwischen der App.

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