Android实现对话框-附一个完整例子

来源:互联网 发布:复杂网络社区发现 编辑:程序博客网 时间:2024/05/16 13:56

Android其实没有对话框的概念,有的只是用PopupWindow实现一个对话框的效果。下面给一个完整的例子,及用法。

新建一个PromptWindow类

package com.friendlocation;import java.util.ArrayList;import android.app.Activity;import android.content.Context;import android.graphics.drawable.Drawable;import android.view.View;import android.view.ViewGroup;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.Button;import android.widget.ListView;import android.widget.PopupWindow;import android.widget.TextView;import android.widget.AdapterView.OnItemClickListener;public class PromptWindow extends PopupWindow{// 列表项Activity context;View popupView;OnBtnClickedListener listener;public PromptWindow(Activity context, int width, int height){super(context);this.context = context;// 创建popupView = context.getLayoutInflater().inflate(R.layout.prompt_window, null);Button btnOk = (Button) popupView.findViewById(R.id.btn_ok);btnOk.setOnClickListener(new OnClickListener(){public void onClick(View view){if(listener!= null) listener.onBtnOkClicked(PromptWindow.this);}});// 显示对话框this.setContentView(popupView);this.setWidth(width);this.setHeight(height);setFocusable(true);setBackgroundDrawable(context.getResources().getDrawable(R.drawable.shape_menu));//setBackgroundDrawable(new BitmapDrawable()); }public interface OnBtnClickedListener{public void onBtnOkClicked(PopupWindow win);}public void setOnBtnClickedListener(OnBtnClickedListener l){listener = l;}}

在res/layout下新建一个布局文件 prompt_window.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@drawable/shape_menu_recent"    android:orientation="vertical"    android:padding="2dp" >    <LinearLayout        android:layout_width="match_parent"        android:layout_height="fill_parent"        android:background="#333333"        android:orientation="vertical" >        <TextView            android:id="@+id/menu_title"            android:layout_width="fill_parent"            android:layout_height="1dp"            android:background="#555555"            android:gravity="center"            android:text="注册提示"            android:textAppearance="?android:attr/textAppearanceMedium"            android:textColor="#EEEEEE"            android:textSize="18sp" />        <TextView            android:id="@+id/textView1"            android:layout_width="fill_parent"            android:layout_height="fill_parent"            android:layout_weight="1"            android:padding="4dp"            android:text="软件未注册时限制最多100条信息,请删除若干消息后继续使用。或购买注册码。"            android:textColor="#DDDDDD"            android:textSize="14sp" />        <Button            android:id="@+id/btn_ok"            style="?android:attr/buttonStyleSmall"            android:layout_width="100dp"            android:layout_height="28dp"            android:layout_gravity="right"            android:layout_margin="4dp"            android:background="@drawable/toolbutton"            android:text="点此注册"            android:textColor="#DDDDDD" />    </LinearLayout></LinearLayout>

都看懂了没?

 显示对话框

PromptWindow win = new PromptWindow(this, 420, 240);win.showAtLocation(this.findViewById(R.id.titlebar), Gravity.CENTER, 0, 0);// 点击按钮时去干什么win.setOnBtnClickedListener(new PromptWindow.OnBtnClickedListener(){public void onBtnOkClicked(PopupWindow w){w.dismiss();//Intent intent = new Intent(MainActivity.this, RegisterActivity.class);startActivityForResult(intent, 100);}});


 

----------------------------------------------------------------------------------------------------------------------------------

《C/C++学习指南》 - 我的讲C/C++的教程,一看就懂的教程,所有必须要懂的知识点,来吧! 适用于初学者及三年工作经验以内的同学,配套答疑平台,“让编程变得简单!”。


 

0 0