Şimdi birkaç saatliğine kafamı bulamaya çalışıyorum.Ana faaliyete dönüş değeri elde etmek için Dialog'u başlatın
Ana Fragman sınıfım var, sonra onClick'ten bu sınıftaki bir ImageView'dan ayarladım, basit bir "Evet" veya "İptal" seçeneğiyle bir Diyalog Fragmanı başlatıyorum.
Kullanıcı "Tamam" ı tıklattığında, daha sonra bazı kodları çalıştırmak için ana Fragmanma bir Sonuç kodu gönderecek (Bu durumda, duvar kağıdı ayarlıyorum).
Bu ses basit ama anlaşılıyor gibi görünmüyor. Şimdiden teşekkürler.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.image_detail_fragment,
container, false);
mImageView = (RecyclingImageView) v.findViewById(R.id.imageView);
mImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
MyDialogFragment dialog = new MyDialogFragment();
dialog.show(getActivity().getFragmentManager(),
"MyDialogFragment");
}
public void onDialogOKPressed() {
((ImageDetailFragment) (DialogFragment.this.getParentFragment()))
.onDialogOKPressed();
dismiss();
}
});
return v;
}
iletişim sınıf: ben bir şekilde geri sonuç almak istiyoruz
Onclick etkinlik olarak
class MyDialogFragment extends DialogFragment {
private Button ButtonOk;
private Button ButtonCancel;
public MyDialogFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.prompt, container);
ButtonOk = (Button) view.findViewById(R.id.button1);
ButtonCancel = (Button) view.findViewById(R.id.button2);
getDialog().setTitle("Set Wallpaper?");
ButtonOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
((MyDialogFragment)(DialogFragment.this.getActivity())).onDialogOKPressed();
dismiss();
}
});
ButtonCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
MyDialogFragment.this.dismiss();
}
});
return view;
}
}
Öyleyse, ana etkinliğin kodumu yürütmesini bilmesi için sonucu nasıl almam gerekiyordu? Bu benim sorum oldu :) – Jack
Bu sadece etkinliğinizde yeni yönteminizi çağırır. Bu yüzden kodunuzu bu yeni yöntemden çalıştırın. Tamam düğmesine basılmazsa çağrılmaz. Sonuç kodu ile if/else bloğundan kurtulun. Duvar kağıdını ayarlamayı planladığınıza göre, yeni yöntemde duvar kağıdınızı ayarlayın. – Tenfour04
Alternatif olarak, yeni yöntemi parçanıza yerleştirebilir ve '((MyActivity) getActivity())' i ((MyFragment) getParentFragment()) 'ile değiştirebilirsiniz. – Tenfour04