Android 自定义Dialog

xiaoxiao2021-02-28  105

Android 自定义Dialog

MainActivity

package com.example.zdydialog_demo; import com.example.zdydialog_demo.MyDialog.MyCall; import android.app.Activity; import android.app.Dialog; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { private Button mBtn; private MyDialog dialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { mBtn=(Button) findViewById(R.id.mBtn); mBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { dialog=new MyDialog(MainActivity.this, "确定退出吗?", "确定", "退出"); dialog.setCall(new MyCall() { @Override public void yes() { Toast.makeText(MainActivity.this, "确定", 0).show(); } @Override public void no() { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "取消", 0).show(); } }); dialog.show(); } }); } }

MyDialog

package com.example.zdydialog_demo; import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.view.Display; import android.view.Gravity; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.view.WindowManager.LayoutParams; import android.widget.TextView; public class MyDialog extends Dialog{ private MyCall call; public MyDialog(Context context,String title,String yes,String no) { super(context); // TODO Auto-generated constructor stub this.title=title; this.yes=yes; this.no=no; } private TextView mTv_title,mTv_yes,mTv_No; private String title; private String yes; private String no; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.dialog); initView(); Window window=getWindow(); WindowManager manager = window.getWindowManager(); LayoutParams params = window.getAttributes(); Display display = manager.getDefaultDisplay(); params.width=(int) (display.getWidth()*0.8); params.height=(int) (display.getHeight()*0.4); window.setGravity(Gravity.CENTER); window.setAttributes(params); } private void initView() { mTv_title=(TextView) findViewById(R.id.mTv_title); mTv_yes=(TextView) findViewById(R.id.mTv_yes); mTv_No=(TextView) findViewById(R.id.mTv_No); mTv_title.setText(title); mTv_yes.setText(yes); mTv_No.setText(no); mTv_yes.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub call.yes(); dismiss(); } }); mTv_No.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { call.no(); dismiss(); } }); } public interface MyCall{ void yes(); void no(); } public void setCall(MyCall call){ this.call=call; } }

//一下是xml文件:

activity_main

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     tools:context="com.example.zdydialog_demo.MainActivity" >     <Button         android:id="@+id/mBtn"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="helle" /> </RelativeLayout>

dialog

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     tools:context="com.example.zdydialog_demo.MainActivity" >     <LinearLayout         android:id="@+id/mLine"         android:layout_width="200dp"         android:layout_height="230dp"         android:layout_centerInParent="true"         android:background="#28c8b7"         android:orientation="vertical" >         <TextView             android:id="@+id/mTv_title"             android:layout_width="wrap_content"             android:layout_height="wrap_content"              />         <LinearLayout             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:layout_marginTop="95dp"             android:orientation="horizontal" >             <TextView                 android:id="@+id/mTv_yes"                 android:layout_width="0dp"                 android:layout_height="wrap_content"                 android:layout_weight="1"               />             <TextView                 android:id="@+id/mTv_No"                 android:layout_width="0dp"                 android:layout_height="wrap_content"                 android:layout_weight="1"        />         </LinearLayout>     </LinearLayout> </RelativeLayout>

转载请注明原文地址: https://www.6miu.com/read-37496.html

最新回复(0)