The method show(FragmentManager, String) in the type DialogFragment is not applicable for the arguments (FragmentManager, String)
public static class MyDialogFragment extends DialogFragment { AlertDialog dialog = null; @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // Get the layout inflater LayoutInflater inflater = getActivity().getLayoutInflater(); View container = inflater.inflate(R.layout.dialog_layout, null); Button btnIPCall = (Button) container .findViewById(R.id.btn_ip_call); btnIPCall.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (dialog != null) dialog.dismiss(); } }); Button btnNormalCall = (Button) container .findViewById(R.id.btn_normal_call); btnNormalCall.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (dialog != null) dialog.dismiss(); } }); // Inflate and set the layout for the dialog // Pass null as the parent view because its going in the dialog // layout builder.setView(container); dialog = builder.create(); return dialog; } }
开发时遇到上述错误(红色字体),找了好久。原因原来是:
import android.support.v4.app.DialogFragment;
改为导入
import android.app.DialogFragment;
就正常了。
或者
把
public class MainActivity extends Activity {
改为
public class MainActivity extends FragmentActivity {
当然也有可能是其他原因造成的,可以尝试
As you're using android.support.v4.app.DialogFragment, you should pass to show() an instance of android.support.v4.app.FragmentManager which can be queried using an getSupportFragmentManager() call. Hope this helps.
相关推荐
**DialogFragment 深度解析** 在Android应用开发中,DialogFragment是一个重要的组件,它结合了Fragment的功能和对话框的特性。DialogFragment是Android 3.0(API级别11)引入的,它允许开发者在应用程序中以对话...
2. 在需要显示对话框的地方,通过FragmentManager来添加DialogFragment。例如,你可以在某个按钮的点击事件中调用以下代码: ```java MyDialogFragment dialogFragment = new MyDialogFragment(); dialogFragment....
- 使用FragmentManager进行添加,调用`show()`方法,传入FragmentTransaction和DialogFragment实例。 - 在Activity或Fragment中创建一个方法,然后在需要显示DialogFragment的地方调用此方法。 4. **...
使用DialogFragment时,只需将它添加到Activity的布局或者通过FragmentManager进行管理。这种做法使得DialogFragment更易于管理,也更容易处理配置变化。 源码分析中,我们可以看到DialogFragment是如何在它的生命...
4. 在Activity中,你可以通过`FragmentManager`和`FragmentTransaction`来添加、替换或移除DialogFragment。 以下是一个简单的DialogFragment示例代码: ```java public class MyDialogFragment extends ...
- 可以通过调用`show(FragmentManager, String)`方法将DialogFragment添加到回退栈并显示。FragmentManager通常从Activity获取,而String参数是一个标签,用于标识DialogFragment。 4. **生命周期方法** - 和...
有多种方式可以显示`DialogFragment`,包括使用`FragmentManager`的`beginTransaction()`方法添加到栈中,或者直接调用`show()`方法。下面展示了如何在按钮点击事件中显示`DialogFragment`: ```java ...
3. **显示`DialogFragment`**:在Activity中,我们可以通过`FragmentManager`来显示`DialogFragment`。首先,我们需要创建`DialogFragment`的实例,然后调用`show()`方法。 ```java MyDialogFragment ...
dialogFragment.show(getSupportFragmentManager(), "tag"); ``` 隐藏则调用`dismiss()`方法: ```java dialogFragment.dismiss(); ``` ### 6. 回调事件 `DialogFragment`可以监听对话框的按钮点击和其他事件,...
dialogFragment.show(getSupportFragmentManager(), "CustomListDialog"); ``` 至此,我们就成功地使用建造者模式、DialogFragment和RecyclerView创建了一个自定义的列表式Dialog。这种自定义方式使得Dialog具有...
dialogFragment.show(getSupportFragmentManager(), "ShareDialog"); ``` 为了实现分享功能,我们还需要在`CustomShareDialogFragment`中添加相应的事件监听。例如,可以为每个分享按钮设置点击事件,调用系统的...
要在某个Activity或Fragment中显示DialogFragment,你可以使用`FragmentManager`的`beginTransaction()`方法进行添加。确保调用`commit()`来提交交易。 ```java CustomDialogFragment dialogFragment = new ...
在Android开发中,`DialogFragment`是一个非常实用的组件,它允许我们以对话框的形式展示内容,同时继承了Fragment的特性,便于在不同设备和屏幕尺寸上管理UI。本篇文章将详细探讨如何自定义`DialogFragment`,特别...