安卓自定义AlertDialog,原理很简单:
AlertDialog dialog = new AlertDialog.Builder(MainActivity.this).create(); dialog.show(); Window window = dialog.getWindow(); window.setContentView(R.layout.alert_dialog);
通过window设置自定义dialog布局;
效果如图:
主界面MainActivity代码:
package com.byl.testalertdialog; import android.app.Activity; import android.app.AlertDialog; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { AlertDialog dialog=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dialog = new AlertDialog.Builder(MainActivity.this).create(); Button btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { dialog.show(); Window window = dialog.getWindow(); window.setContentView(R.layout.alert_dialog); //选项1 ((TextView)window.findViewById(R.id.tv_item1)).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Toast.makeText(getApplicationContext(), "选项1", Toast.LENGTH_LONG).show(); dialog.cancel(); } }); //选项2 ((TextView)window.findViewById(R.id.tv_item2)).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Toast.makeText(getApplicationContext(), "选项2", Toast.LENGTH_LONG).show(); dialog.cancel(); } }); } }); } }
源码下载地址:http://download.csdn.net/detail/baiyuliang2013/8627229