最简单的自定义对话框方法
步骤:
1.写一个如图对话框一样的布局
2.用View.inflate()方法转化成一个View对象
3.通过AlertDialog的Builder对象的setView()方法将此view设置进去
4.然后通过AlertDialog的Builder对象的show()方法显示出来
activity_dialog布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:padding="3dp"
android:background="#ffffff"
android:gravity="center_horizontal"
android:orientation="vertical">
<RelativeLayout
android:layout_width="300dp"
android:layout_height="wrap_content"
android:background="#ffffff"
android:padding="10dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="热线电话"
android:textSize="18sp"/>
<ImageButton
android:id="@+id/ib_clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="@drawable/clear_dialog"/>
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DDDDDD" />
<TextView
android:id="@+id/tv_phone"
android:layout_width="280dp"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:textSize="16sp"
android:text="热线电话:400-668-8499"/>
<Button
android:id="@+id/bt_ok"
android:layout_width="280dp"
android:layout_height="50dp"
android:background="@drawable/bt_positive_selector"
android:layout_marginTop="10dp"
android:textColor="#ffffff"
android:textSize="16sp"
android:text="确定"/>
<Button
android:id="@+id/bt_cancel"
android:layout_width="280dp"
android:layout_height="50dp"
android:background="@drawable/bt_negetive_selector"
android:layout_marginTop="10dp"
android:layout_marginBottom="15dp"
android:textColor="#ffffff"
android:textSize="16sp"
android:text="取消"/>
</LinearLayout>
MainActivity代码
package com.qiushi.nicedialog;
import android.app.AlertDialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private Button bt_show;
private AlertDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt_show = (Button) findViewById(R.id.bt_show);
bt_show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showMyDialog();
}
});
}
private void showMyDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
View view = View.inflate(this,R.layout.activity_dialog,null);
builder.setView(view);
ImageButton ib_clear = (ImageButton) view.findViewById(R.id.ib_clear);
TextView tv_phone = (TextView) view.findViewById(R.id.tv_phone);
Button bt_ok = (Button) view.findViewById(R.id.bt_ok);
Button bt_cancel = (Button) view.findViewById(R.id.bt_cancel);
tv_phone.setText("工作日:9:00-21:00\n非工作日:9:00-18:00\n\n您确定要拨打400-888-8888?");
ib_clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
bt_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel://400-888-8888"));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
dialog.dismiss();
}
});
bt_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog = builder.show();
}
}