自定义对话框之单选框。。title带图片,选项不带图片的

使用Android创建颜色选择对话框
本文介绍如何在Android应用中使用AlertDialog创建一个简单的颜色选择对话框,包括设置图标、标题、列表项和监听器。

----------------------------------main.java---------------------------


package com.example.mm;


import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bn = (Button)findViewById(R.id.bn);
final Builder b = new AlertDialog.Builder(this);
//为按钮绑定事件监听器
bn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View source)
{
//设置对话框的图标
b.setIcon(R.drawable.tools);
//设置对话框的标题
b.setTitle("简单列表对话框");
//为对话框设置多个列表
b.setItems(
new String[] {"红色" , "绿色" , "蓝色"}
//为按钮设置监听器
, new OnClickListener() 
{
//该方法的which参数代表用户单击了那个列表项
@Override
public void onClick(DialogInterface dialog
, int which) 
{
TextView show = (TextView)findViewById(R.id.show);
//which代表哪个列表项被单击了
switch(which)
{
case 0:
show.setBackgroundColor(Color.RED);
break;
case 1:
show.setBackgroundColor(Color.GREEN);
break;
case 2:
show.setBackgroundColor(Color.BLUE);
break;
}
}
});
//创建、并显示对话框
b.create().show();
}
});
}


}


............................................main.xml............................................................


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
>
<TextView
android:id="@+id/show" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="测试文本内容"
android:textSize="11pt"
/>
<Button 
android:id="@+id/bn" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="选择颜色"
/>
</LinearLayout>




<think>嗯,用户想用VBScript实现一个有两个选择按钮的界面框。首先,我需要回忆一下VBScript能做些什么。VBScript通常用于简单的Windows脚本任务,但它的GUI能力有限,像其他语言比如Python有丰富的库。过,VBScript可以通过创建COM对象,比如使用Microsoft Forms 2.0库来生成简单的对话框。 用户提到两个选择按钮,可能是指选项按钮(OptionButton),也就是单选按钮,或者是普通的按钮(CommandButton)。如果是单选按钮的话,通常需要放在同一个容器里,比如Frame里,才能实现单选的效果。但VBScript创建GUI可能比较麻烦,因为需要手动构建每个控件,设置属性,处理事件。 接下来,我需要考虑如何用VBScript实现这个界面。可能需要使用UserForm或者直接创建控件。但VBScript本身支持UserForm,可能需要用CreateObject生成一个窗体,然后添加控件。例如,用CreateObject("VBScripting.Includer")或者直接使用WScript.Shell弹出输入框,但这样可能够灵活。 另一种方法是使用HTML Application(HTA),虽然这算是HTML和VBScript的结合,但用户可能希望纯VBScript解决方案。过,HTA可能更容易实现界面。需要确认用户是否接受HTA的方式。 如果用户坚持纯VBScript,可能需要使用MsgBox,但MsgBox只能显示消息和简单的按钮,无法自定义选项按钮。所以必须用其他方法。比如,创建Internet Explorer对象,动态生成HTML页面,但这可能比较复杂,而且依赖IE,现在IE已经被淘汰,可能存在兼容性问题。 或者,可以使用WScript.CreateObject("WScript.Shell").Popup,但同样只能显示有限的按钮,比如确定、取消等,无法自定义按钮文本。所以可能无法满足两个选择按钮的需求。 回到最初的想法,使用Microsoft Forms 2.0库中的控件。例如,创建UserForm,但VBScript本身支持,可能需要用VBScript调用这些控件。例如,创建一个对话框,添加两个OptionButton控件和一个CommandButton,然后处理按钮的点击事件。 具体的代码结构可能如下:创建窗体对象,设置属性,添加控件,然后显示窗体,处理事件循环。需要注意VBScript的事件处理可能比较困难,因为它是单线程的,可能需要使用消息循环或者回调。 可能的代码示例是创建一个UserForm,添加两个OptionButton和一个确定按钮,当点击确定时,根据选中的OptionButton弹出结果。但需要确保系统中有FM20.dll(Microsoft Forms 2.0 Object Library)的注册,这在大多数Windows系统上应该是存在的。 然后,需要处理窗体的显示模式,确保脚本等待用户操作。可能需要在显示窗体后进入循环,等待用户点击按钮。当按钮被点击时,执行相应的处理,比如获取选中的选项,然后关闭窗体。 用户可能遇到的难点是如何在VBScript中处理事件,因为通常VBScript支持多线程或事件回调,可能需要使用子过程来处理事件,或者利用窗体的事件模型。 此外,需要注意控件的名称和引用是否正确,比如正确设置控件变量,正确调用方法和属性。例如,OptionButton的Value属性是否被正确检测。 总结步骤:创建窗体对象,添加两个OptionButton控件,添加一个CommandButton,编写按钮点击事件的处理程序,显示窗体,进入事件循环,处理结果。 可能还需要处理窗体关闭的情况,避免脚本无限循环。例如,当用户点击确定按钮后,隐藏窗体,并退出循环。 最后,需要测试代码是否在用户的系统上运行正常,是否有权限问题,或者是否缺少必要的库。</think>你可以使用VBScript结合`Microsoft Forms 2.0`库来创建有两个选项按钮的简单界面。以下是实现代码及说明: ```vbs Set frm = CreateObject("UserForm") Set cmd = CreateObject("CommandButton") Set opt1 = CreateObject("MSForms.OptionButton.1") Set opt2 = CreateObject("MSForms.OptionButton.1") ' 设置窗体属性 With frm .Caption = "选择界面" .Width = 200 .Height = 150 End With ' 设置第一个选项按钮 With opt1 .Caption = "选项 1" .Left = 20 .Top = 20 .Width = 100 .GroupName = "Options" ' 分组实现单选 End With ' 设置第二个选项按钮 With opt2 .Caption = "选项 2" .Left = 20 .Top = 50 .Width = 100 .GroupName = "Options" End With ' 设置确认按钮 With cmd .Caption = "确定" .Left = 60 .Top = 100 .Width = 80 End With ' 添加控件到窗体 frm.Controls.Add opt1 frm.Controls.Add opt2 frm.Controls.Add cmd ' 按钮点击事件处理 Sub cmd_Click() If opt1.Value Then MsgBox "你选择了:选项1" ElseIf opt2.Value Then MsgBox "你选择了:选项2" Else MsgBox "请先选择一个选项!" End If frm.Hide End Sub ' 显示窗体 frm.Show ``` **实现原理:** 1. 使用`UserForm`对象创建基础窗体 2. 通过`MSForms.OptionButton`创建单选按钮(需分组同名) 3. 添加确认按钮处理选择结果 4. 通过按钮点击事件判断选择状态 **注意事项:** 1. 需要系统支持`Microsoft Forms 2.0`组件(默认包含在Office中) 2. 首次运行可能会提示安全警告 3. 选项按钮必须设置相同的`GroupName`才能实现单选效果 4. 窗体单位为缇(1缇=1/567厘米),需注意尺寸设置 如果需要更简单的实现,可以使用HTML Application(HTA)方案,支持更灵活的界面设计: ```html <hta:application id="demo" scroll="no"> <html> <head> <title>双选界面</title> <script language="VBScript"> Sub Confirm If Option1.Checked Then MsgBox "选择:选项1" Else MsgBox "选择:选项2" End If Window.Close End Sub </script> </head> <body> <input type="radio" name="group1" id="Option1">选项1<br> <input type="radio" name="group1" id="Option2">选项2<br> <button onclick="Confirm">确定</button> </body> </html> ``` 将以上代码保存为`.hta`文件即可运行。这种方案兼容性更好且支持更丰富的界面元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值