本文主要是介绍自定义Dialog以及Dialog的相关问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
以前遇到过这些问题但是我都没有好好总结下以至于今天有遇到,但是忘了所以有浪费了我的一些时间,所以这次记下来,希望下一次遇到同样的问题可以快速解决。
刚开始我使用了AlertDialog.Bulder但是setView()的时候第一次是可以显示的,但是接着打开就报错说必须remoview()什么的,纠结很久,总以为能解决
但是最后还是没解决所以换一个思路就对了。
dialog有几类但是都不灵活有时候需要我们自定义dialog才能满足需求
1.dialog_report.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
>
<RelativeLayout
android:id="@+id/set_titlebar"
style="@style/title_style"
android:layout_alignParentTop="true" >
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/report_title"
android:textColor="@color/white"
android:textSize="@dimen/font16" />
</RelativeLayout>
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/set_titlebar"
android:fillViewport="true"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="top"
android:hint="@string/report_write_tip"
android:inputType="textMultiLine"
android:minHeight="200dp" >
</EditText>
</RelativeLayout>
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/scrollView1"
android:layout_centerHorizontal="true" >
<Button
android:id="@+id/reportSubmit"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/report_submit"
android:layout_weight="1"
/>
<Button
android:id="@+id/reportGiveUp"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/report_giveup"
android:layout_weight="1"
/>
</LinearLayout>
</RelativeLayout>
2.style文件
<!-- 设置无标题 -->
<style name="my_dialog_style" parent="android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
</style>
3.使用
/**
* 初始化举报dialog
*/
private void initReportDialog() {
dialog=new Dialog(this,R.style.my_dialog_style);
View dialogView=View.inflate(this, R.layout.dialog_report, null);
dialog.setContentView(dialogView);
Button reportSubmit = (Button)dialogView.findViewById(R.id.reportSubmit);
Button reportGiveUp = (Button)dialogView.findViewById(R.id.reportGiveUp);
reportSubmit.setOnClickListener(submitListener());
reportGiveUp.setOnClickListener(giveUpListener());
}
/**
* 放弃按钮监听
* @return
*/
private OnClickListener giveUpListener() {
return new OnClickListener() {
@Override
public void onClick(View arg0) {
dialog.dismiss();
}
};
}
/**
* 提交按钮监听
* @return
*/
private OnClickListener submitListener() {
return new OnClickListener() {
@Override
public void onClick(View arg0) {
// 处理数据
//更新UI
dialog.dismiss();
}
};
}
/**
*调用
**/
dialog.show();
这篇关于自定义Dialog以及Dialog的相关问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!