Articles of android dialogfragment

为什么Android O失败并且“不属于这个FragmentManager!”

我已将我的应用程序迁移到Android Studio 3中的Android O. 在Android O模拟器上运行我的所有dialogFragments现在都失败了: – java.lang.IllegalStateException: Fragment MyDialogFragment{43ccf50 #2 MyDialogFragment} declared target fragment SettingsFragment{ceed549 #0 id=0x7f0f0142 android:switcher:2131689794:0} that does not belong to this FragmentManager! at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1316) at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1624) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1689) at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:794) at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2470) at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2260) at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2213) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2122) at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:746) at android.os.Handler.handleCallback(Handler.java:769) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6535) at java.lang.reflect.Method.invoke(Native Method) […]

DialogFragment全屏显示两侧填充

我正在创建一个显示在操作栏下方的自定义DialogFragment。 到目前为止一切都很好。 对话框片段的布局参数是match_parent for width和wrap_content for height。 我尝试了所有解决方案,包括设置布局参数.width以及获取显示大小和删除主题。 然而,无论在对话框的左侧,右侧和顶侧是否有少量空间是不可见的。 我需要知道如何删除这个空间,以便它实际上匹配屏幕的宽度,并希望摆脱顶部填充。

DialogFragment中的ViewPager – IllegalStateException:Fragment没有视图

我想要实现的目标 从FragmentActivity单击操作栏中的操作按钮时会显示一个对话框 DialogFragment – 没有标题的对话框 TabHost – 对话框顶部的选项卡 ViewPager with FragmentPagerAdapter – Swipable,其内容连接到Tabs 2-3对话框按钮(对话框的不同子类,不同的按钮) – 不应该在ViewPager的一个Fragment ,这意味着无论ViewPager显示什么Fragment ,相同的按钮都应保留在对话框的底部。 问题 IllegalStateException: Fragment does not have a view 到目前为止我尝试/做过的事情 使用android.support.v4包进行必要的类 调用getChildFragmentManager()而不是getSupportedFragmentManager() 通过此链接实施了#10建议的posthttps://code.google.com/p/android/issues/detail?id=42601 。 我将代码直接复制/粘贴到我想要显示的两个Fragment类中,以及DialogFragment类。 在我的自定义DialogFragment我首先尝试覆盖onCreateView ,然后是onCreateDialog ,然后同时覆盖两者。 所有这些我都要跑,但意外的结果。 只有onCreateView :无法访问AlertDialog.Builder来创建所需的按钮,除了Dialog的结果很棒。 仅onCreateDialog :上面显示的错误消息。 我仍然认为这种方法与我想要达到的目标一样接近。 onCreateView和onCreateDialog :在onCreateView膨胀对话框布局,并将对话框按钮添加到onCreateDialog的AlertDialog.Builder 。 这显示了对话框,但AlertDialog.Builder中添加的按钮不可见。 此外,单击EditText字段时键盘未显示。 源代码 大多数来自Tutorial在Android 2.2 + ViewPager和Fragments中实现TabHost的使用 。 ActivityFragment的代码改为DialogFragment 。 但是我从这个答案https://stackoverflow.com/a/18167273/2375978的源代码中用一个修改过的ViewPager替换了它的ViewPager。 […]

Android 6.0对话框文本不会出现

我将手机更新到Android 6.0,我有两个对话框问题: 1)显示标题,但消息不用于警告对话框(已解决): new AlertDialog.Builder(context).setTitle(“Title”).setMessage(“Message”); 2)还没有显示自定义对话框片段的标题(未解决): getDialog().setTitle(“Title”); 在棒棒糖或旧版本中没有这样的问题,只有在将手机更新为棉花糖后才出现问题。 如何解决问题?

传递上下文作为DialogFragment的参数

可以将上下文variables传递给DialogFragment吗? 我在对话框中使用此代码来传递字符串: public static ConfirmDialog newInstance( String f) { ConfirmDialog d = new ConfirmDialog(); Bundle args = new Bundle(); args.putString(“FILE_NAME”, f); d.setArguments(args); return d; } 但我找不到像putString这样的函数来传递上下文。 这可能吗?

Android的DialogFragment是空白的

我在创build对话框时遇到了问题。 它确实出现了,但里面是空的,只是一个空白的框显示​​。 对话类: public class SomeDialog extends DialogFragment{ @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); LayoutInflater inflater = getActivity().getLayoutInflater(); builder.setView(inflater.inflate(R.layout.somelayout, null)); return super.onCreateDialog(savedInstanceState); } } 在一个活动中,创build一个对象并调用show方法: SomeDialog obj = new SomeDialog(); obj.show(getFragmentManager(), "randomtag");

如何从DialogFragment读取/写入首选项?

我想从DialogFragment中的首选项文件读取。 如果我这样做: prefs = getSharedPreferences("numberPicker.preferences", 0); 那么我得到一个编译时错误,因为getSharedReference是一个ContextWrapper方法,但DialogFragment不是一个ContextWrapper(我使用android.support.v4.app.DialogFragment向后兼容的方式)。 如果可选地,作为一种“解决方法”,我使用在类InitSpel(这是一个FragmentActivity,因此是一个ContextWrapper)中创build的SharedPreferences对象prefs,然后我得到没有错误(在编译时,也没有在运行时),但值不存储(下次我启动应用程序的值baan1和baan2仍然是0)。 怎么解决? package mypackage; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.ComponentName; import android.content.DialogInterface; import android.content.SharedPreferences; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; import android.view.LayoutInflater; import android.view.View; import android.widget.EditText; public class VraagBanenDialogFragment extends DialogFragment { private View v; private EditText editText1; private EditText editText2; //private ArrayList<Baan> baanNummers; private int[] […]

AutoCompleteTextView只允许build议的选项

我有一个DialogFragment包含AutoCompleteTextView ,并Cancel和OKbutton。 AutoCompleteTextView提供了我从服务器获得的用户名的build议。 我想要做的是限制用户只能input现有的用户名。 我知道我可以检查用户是否存在,当用户点击OK ,但有其他方式,让我们说不允许用户input字符,如果不存在这样的用户名。 我不知道如何做到这一点,因为每input一个字符,我只能得到5个build议。 服务器是这样实现的。 任何build议都欢迎。 谢谢

android中片段/对话框之间的通信

我有一个有两个片段的活动:一个用于在GridView中显示产品,另一个用于显示用户添加到订单(ListFragment)的产品。 当用户在网格视图中点击一个产品时,我需要的是显示一个对话框(DialogFragment),在这个对话框中我要求产品的数量。 然后,当用户点击对话框中的接受,我想产品出现在ListFragment。 一方面,我必须将对象产品传递给对话框,以便将其名称显示为对话框的标题(例如)。 所以我做的就是这样通过: public static class ProductDialog extends DialogFragment { static ProductDialog newInstance(ProductVO product) { ProductDialog f = new ProductDialog(); Bundle args = new Bundle(); args.putSerializable("product", product); f.setArguments(args); return f; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { ProductVO product = (ProductVO) getArguments().getSerializable("product"); return new AlertDialog.Builder(getActivity()) .setIcon(R.drawable.ic_dialog_add) .setTitle(R.string.add_product) … .setPositiveButton(R.string.accept, new DialogInterface.OnClickListener() { public […]

如何在API应用程序中使用NumberPicker?

我的应用程序的最小sdk是7,但是我可以使用来自sdk版本11的DialogFragment,因为它位于lib目录中的支持库中。 我想做这样的例子: http : //developer.android.com/guide/topics/ui/controls/pickers.html 但是我想使用来自sdk版本11的NumberPicker小部件,但我的应用程序不允许这样做。 我必须添加其他支持库吗? 我怎样才能使用这个组件? 谢谢。