当前位置: 首页 > wzjs >正文

上海传媒公司注册代办怎么关闭seo综合查询

上海传媒公司注册代办,怎么关闭seo综合查询,免费打广告的平台app,如何在百度做网站在Android中创建DialogFragment DialogFragment是Android中创建对话框的推荐方式,它比传统的Dialog类更灵活且生命周期更完善。以下是创建DialogFragment的完整指南: 基本创建步骤 1. 继承DialogFragment类 public class MyDialogFragment extends D…

在Android中创建DialogFragment

DialogFragment是Android中创建对话框的推荐方式,它比传统的Dialog类更灵活且生命周期更完善。以下是创建DialogFragment的完整指南:

基本创建步骤

1. 继承DialogFragment类

public class MyDialogFragment extends DialogFragment {// 对话框逻辑将在这里实现
}

2. 重写onCreateView或onCreateDialog

有两种主要方式创建对话框内容:

方式一:使用自定义布局(重写onCreateView)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// 膨胀自定义布局View view = inflater.inflate(R.layout.fragment_dialog, container, false);// 初始化视图组件Button button = view.findViewById(R.id.button);button.setOnClickListener(v -> {// 处理点击事件dismiss(); // 关闭对话框});return view;
}
方式二:使用AlertDialog(重写onCreateDialog)
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());builder.setTitle("提示").setMessage("这是一个对话框示例").setPositiveButton("确定", (dialog, which) -> {// 确定按钮点击处理}).setNegativeButton("取消", (dialog, which) -> {// 取消按钮点击处理});return builder.create();
}

3. 显示对话框

在Activity或Fragment中显示对话框:

MyDialogFragment dialogFragment = new MyDialogFragment();
dialogFragment.show(getSupportFragmentManager(), "MyDialogFragment");

完整示例代码

自定义布局对话框示例

1. 布局文件 (res/layout/fragment_dialog.xml)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"android:padding="16dp"><TextViewandroid:id="@+id/title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="自定义对话框"android:textSize="18sp"/><EditTextandroid:id="@+id/input"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入内容"android:layout_marginTop="16dp"/><Buttonandroid:id="@+id/ok_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="end"android:layout_marginTop="16dp"android:text="确定"/>
</LinearLayout>

2. DialogFragment实现

public class CustomDialogFragment extends DialogFragment {public interface DialogListener {void onDialogPositiveClick(String inputText);}private DialogListener listener;public void setDialogListener(DialogListener listener) {this.listener = listener;}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.fragment_dialog, container, false);EditText input = view.findViewById(R.id.input);Button okButton = view.findViewById(R.id.ok_button);okButton.setOnClickListener(v -> {if (listener != null) {listener.onDialogPositiveClick(input.getText().toString());}dismiss();});return view;}
}

3. 在Activity中使用

public class MainActivity extends AppCompatActivity implements CustomDialogFragment.DialogListener {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button showDialogBtn = findViewById(R.id.show_dialog_btn);showDialogBtn.setOnClickListener(v -> {CustomDialogFragment dialog = new CustomDialogFragment();dialog.setDialogListener(this);dialog.show(getSupportFragmentManager(), "CustomDialog");});}@Overridepublic void onDialogPositiveClick(String inputText) {// 处理对话框返回的数据Toast.makeText(this, "输入内容: " + inputText, Toast.LENGTH_SHORT).show();}
}

高级用法

1. 设置对话框样式

在styles.xml中定义样式:

<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert"><item name="colorPrimary">@color/colorPrimary</item><item name="android:windowBackground">@drawable/dialog_background</item><item name="android:windowNoTitle">true</item>
</style>

在DialogFragment中应用样式:

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setStyle(DialogFragment.STYLE_NORMAL, R.style.MyDialogTheme);
}

2. 全屏对话框

@Override
public void onStart() {super.onStart();Dialog dialog = getDialog();if (dialog != null) {int width = ViewGroup.LayoutParams.MATCH_PARENT;int height = ViewGroup.LayoutParams.MATCH_PARENT;dialog.getWindow().setLayout(width, height);}
}

3. 对话框动画

创建动画资源(res/anim/):

slide_in_bottom.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="@android:integer/config_shortAnimTime"android:fromYDelta="100%"android:toYDelta="0%"/>
</set>

slide_out_bottom.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="@android:integer/config_shortAnimTime"android:fromYDelta="0%"android:toYDelta="100%"/>
</set>

应用动画:

@Override
public void onActivityCreated(Bundle arg0) {super.onActivityCreated(arg0);getDialog().getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
}

注意事项

  1. 生命周期:DialogFragment有自己的生命周期,与Activity/Fragment同步
  2. 旋转处理:自动处理屏幕旋转,无需额外配置
  3. 内存泄漏:避免持有Activity的强引用
  4. 显示位置:使用show()方法的第二个参数作为tag,可用于后续查找
  5. AndroidX版本:建议使用androidx.fragment.app.DialogFragment而非旧版support库

DialogFragment提供了比传统Dialog更强大的功能,特别是在处理生命周期和配置变更时表现更好,是Android开发中实现对话框功能的首选方式。

http://www.dtcms.com/wzjs/19116.html

相关文章:

  • 网站优化 ur建站seo少女
  • 如何做做网站企业邮箱
  • 如何自己做优惠券网站百度有人工客服吗
  • 为网站做一则广告语关键词推广软件排名
  • 微网站设计北京自动seo
  • 深圳龙岗高端网站建设百度搜索高级搜索技巧
  • 做调查网站赚钱百度图片收录提交入口
  • 网站专题页如何做网站关键词优化
  • 藤县建设局网站百度的广告
  • wordpress刷留言seo技术中心
  • 网站宽度 1000px网站推广100种方法
  • 网站程序文件软文写作技巧有哪些
  • 广州 科技网站建设公司网站维护公司
  • 网站一般用什么软件做可以免费发布广告的平台有哪些
  • 刚做的网站搜全名查不到汽车网站建设
  • 怎么做国外网站南昌网站seo外包服务
  • 十堰网站网站建设新浪新闻疫情
  • 西部数码网站管理助手卸载信息流优化师没经验可以做吗
  • 宜春网站建设哪家专业营销一体化平台
  • 石碣镇做网站手机百度如何发布广告
  • 搜狗推广效果好吗深圳排名seo
  • 企业员工餐解决方案站内优化主要从哪些方面进行
  • 做外贸零售和批发批发网站自己怎么做游戏推广赚钱
  • 天河网站建设信科网络自己怎么免费做网站
  • 政府门户网站建设的建议网络广告营销的概念
  • 合肥建设工会网站安徽网站seo
  • 手机型网站室内设计培训哪个机构比较好
  • 动态网页制作网站谁有恶意点击软件
  • 营销网站案例长春seo排名优化
  • 百家号如何给网站做推广百度热搜榜排名昨日