2017-06-08 2 views
-4

hat Ist es möglich, Daten von einer Aktivität passieren Bundle zu einem Fragment verwenden, die keine OnCreate hatPassing Daten von einer Aktivität zu einem Fragment, das keine onCreate

+0

können Sie onCreate in Fragment implementieren: Überprüfen Sie hier: https://developer.android.com/reference/android/app/Fragment.html#onCreate(android.os.Bundle) –

+0

Fragment hat eine onCreate() aber Sie Daten aus Aktivitäten können nicht übergeben werden. Sie benötigen einen Eventbus- oder Interface-Ansatz. –

+0

nein, ist unmöglich –

Antwort

2

dieses

public class SampleActivity extends AppCompactActivity { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_sample); 

     if (savedInstanceState == null) { 
      Fragment fragment = new SampleFragment(); 

      Bundle args = new Bundle(); 

      args.putInt("sample_int", 1); 

      fragment.setArguments(args); 

      getSupportFragmentManager().beginTransaction() 
       .add(R.id.container, fragment) 
       .commit(); 
     } 
    } 
} 



public class SampleFragment extends Fragment { 


    @Override 
    public void onResume() { 
     Bundle args = getArguments(); 

     if (args != null) { 
      int sampleInt = args.getInt("sample_int", -1); 
     } 
    } 
} 
0

Von Aktivität Versuchen, Sie senden Daten mit Absicht als:

Bundle bundle = new Bundle(); 
bundle.putString("edttext", "From Activity"); 
// set Fragmentclass Arguments 
Fragmentclass fragobj = new Fragmentclass(); 
fragobj.setArguments(bundle); 

und in Fragmente onCreateView Methode:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    String strtext = getArguments().getString("edttext");  
    return inflater.inflate(R.layout.fragment, container, false); 
} 
Verwandte Themen