İki dersim var. Birincisi activity, ikincisi ise bazı EditText
lere sahip olduğum bir fragman. Activityde async-task ile bir alt sınıfım var ve
doInBackground` metodunda değişkene kaydettiğim bazı sonuçlar alıyorum. Bu değişkeni "my activity" alt sınıfından bu parçaya nasıl gönderebilirim?
Aktivite'den verileri şu niyetle gönderirsiniz:
Bundle bundle = new Bundle();
bundle.putString("edttext", "From Activity");
// set Fragmentclass Arguments
Fragmentclass fragobj = new Fragmentclass();
fragobj.setArguments(bundle);
ve Fragment onCreateView yönteminde:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String strtext = getArguments().getString("edttext");
return inflater.inflate(R.layout.fragment, container, false);
}
Burada @ stackoverflow.com'da birçok cevap buldum ama kesinlikle doğru cevap bu:
Faaliyet:
Bundle bundle = new Bundle();
String myMessage = "Stackoverflow is cool!";
bundle.putString("message", myMessage );
FragmentClass fragInfo = new FragmentClass();
fragInfo.setArguments(bundle);
transaction.replace(R.id.fragment_single, fragInfo);
transaction.commit();
Parça:
Parçadaki değeri okuma
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Bundle bundle = this.getArguments();
String myValue = bundle.getString("message");
...
...
...
}
ya da sadece
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
String myValue = this.getArguments().getString("message");
...
...
...
}
Async görevine fragment'in (somut alt sınıfı) referansını aktarırsanız, fragment'e doğrudan erişebilirsiniz.
Parça referansını asenkron göreve aktarmanın bazı yolları:
class FooTask extends AsyncTask
), o zaman parçanızı yapıcıya aktarın.