Bir diyaloga bir parça eklemek istiyorum (bu bir DialogFragment veya normal bir Dialog olabilir). Bunu nasıl yaparım?Bir iletişim kutusuna parça ekleme
İşte benim ana faaliyet var<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
:
public class MyDialogFragment extends DialogFragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
MyDialogFragment2 dialog = new MyDialogFragment2();
View v = inflater.inflate(R.layout.news_articles, container, false);
getActivity().getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, dialog).commit();
return v;
}
}
İşte news_article.xml var: Burada
benim DialogFragment var@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
MyDialogFragment dialog = new MyDialogFragment();
dialog.show(getSupportFragmentManager(), "asdf");
}
});
}
Ama bunu denediğimde alıyorum:
No view found for id 0x7f070002 for fragment MyDialogFragment2
Bunun sebebi, Faaliyetin FragmentManager'ının eklenmesi gereken bir özellik değil, DialogFragment'in yerini bulamıyorum, nerede? . Burada açıklandığı gibi, benim destek-v4 kavanoz yükseltmek zorunda kaldı neden
'getChildFragmentManager() beginTransaction() ....' – Luksprog
Teşekkürler, ancak bu yalnızca API 17'den çalışıyor, öyle değil mi? – Kalisky
Yerel parçalarla, 4.2'den alındıkları için evet. Ancak her zaman, aynı getChildFragmentManager() yöntemiyle çalışan destek uyumluluk paketindeki parçalara sahip olursunuz. – Luksprog