• 全部
  • 音视频
  • Camera
  • UI
  • SDK
  • Android Studio
  • 问答

自定义对话框的显示框(初学者案例)

上官伟坤 广东农工商职业技术学院 软件技术  2020-10-09 12:08:49
1.利用线性布局设置一个简单的按钮
<LinearLayout 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"

android:orientation="vertical"
tools:context=".MainActivity" >

<!-- 定义一个按钮 -->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="显示对话框"
android:layout_gravity="center_horizontal"
android:onClick="click"
/>

<!-- 定义一个单选按钮 -->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="显示单选按钮对话框"
android:layout_gravity="center_horizontal"
android:onClick="singleclick"
/>


</LinearLayout>


2.编写java代码(MainActivity.java)文件:

package com.example.dialogtest;

import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.text.AlteredCharSequence;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void singleclick(View v) {
//1、 创建AlertDialog. Builder对象, Builder类是AlertDi alog的内部类
AlertDialog. Builder builder = new AlertDialog . Builder(this);
//2.调用AlertDialog. Builder的方法为对话框设置图标
builder.setIcon(R. drawable.ic_launcher); //设置图标
//创建单选按钮显示的内容
String[] items ={"boy","girl"};
//builder.setSingleChoiceItems(irems,默认选择了哪一个,当单击要执行的事件)
builder.setSingleChoiceItems(items, 0, null);
//3、调用AlertDialog. Builder的create( )方法创建AlertDialog对话框
AlertDialog dialog = builder. create();
//4、调用AlertDialog的show( )方法显示对话框
dialog. show();

}

public void click(View v){
//1、 创建AlertDialog. Builder对象, Builder类是AlertDi alog的内部类
AlertDialog. Builder builder = new AlertDialog . Builder(this);
//2.调用AlertDialog. Builder的方法为对话框设置图标、标题、内容
builder.setIcon(R. drawable.ic_launcher); //设置图标
builder.setTitle( "提示对话框");//设置标题
builder.setMessage( "我是你的小可爱呀! ! ");//设置内容

//为对话框设置一个"确定"按钮 --第二个参数表示当前用户选择"确定"时要执行的事件
//当按下确定时执行类A中的onClick方法
builder.setPositiveButton("确定", new A());

//为对话框设置一个"取消"按钮
builder.setNegativeButton("取消", new B());

//3、调用AlertDialog. Builder的create( )方法创建AlertDialog对话框
AlertDialog dialog = builder. create();
//4、调用AlertDialog的show( )方法显示对话框
dialog. show();

}

//创建监听器来监听用户按下确定键
@SuppressLint("ShowToast")
class A implements OnClickListener{

@Override
public void onClick(DialogInterface arg0, int arg1) {
// Toast Auto-generated method stub
//makeTest(this,要显示的文本信息,信息显示的时长)
//信息时长有两项选择:1.Toast.LENGTH_SHORT 2.Toast.LENGTH_LONG
Toast toast = Toast.makeText(MainActivity.this, "您按下了确定", Toast.LENGTH_SHORT);
toast.show();
}
}

//创建监听器来监听用户按下取消键
@SuppressLint("ShowToast")
class B implements OnClickListener{

@Override
public void onClick(DialogInterface arg0, int arg1) {
// Toast Auto-generated method stub
//makeTest(this,要显示的文本信息,信息显示的时长)
//信息时长有两项选择:1.Toast.LENGTH_SHORT 2.Toast.LENGTH_LONG
Toast toast = Toast.makeText(MainActivity.this, "您按下了取消", Toast.LENGTH_SHORT);
//注意:MainActivity.this,为什么要加MainActivity的原因--
toast.show();
}

class C implements OnClickListener{

@Override
//第二个参数表示拥护单击的是第几个单选按钮
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
if(which == 0){
//makeTest(this,要显示的文本信息,信息显示的时长)
//信息时长有两项选择:1.Toast.LENGTH_SHORT 2.Toast.LENGTH_LONG
Toast toast = Toast.makeText(MainActivity.this, "您选择了男性", Toast.LENGTH_SHORT);
toast.show();
}else{
//makeTest(this,要显示的文本信息,信息显示的时长)
//信息时长有两项选择:1.Toast.LENGTH_SHORT 2.Toast.LENGTH_LONG
Toast toast = Toast.makeText(MainActivity.this, "您选择了女性", Toast.LENGTH_SHORT);
toast.show();
}
}

}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}
...全文
13545 点赞 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
上官伟坤 2020-10-12
还没学,到时候会在出一篇差不多的,进行对比
回复
键盘舞者113 2020-10-09
对话框建议使用DialogFragment实现
回复
发帖
Android
创建于2009-10-09

7.8w+

社区成员

移动平台 Android
申请成为版主
帖子事件
创建了帖子
2020-10-09 12:08
社区公告
暂无公告