Android AlertDialog 设置setMultiChoiceItems(多选列表)

package com.example.setitemlist_dialog;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	private void Mytask(final String s){
		
		AlertDialog.Builder builder=new AlertDialog.Builder(this);
				builder.setTitle(s);
				builder.setMessage("确定分享到"+s);
				AlertDialog dialog=	builder.create();
				dialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定分享"+s, new DialogInterface.OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int which) {
						Toast.makeText(getApplicationContext(), "已经分享到"+s, Toast.LENGTH_SHORT).show();
						
					}
				});
				dialog.show();
			
	}
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		if(id==R.id.action_list){
			final String [] items={"转发到qq","转发到微信","转发到微博"};
			AlertDialog dialog=new AlertDialog.Builder(this).setItems(items, new DialogInterface.OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					Toast.makeText(getApplicationContext(), items[which], Toast.LENGTH_SHORT).show();
					 //复杂的业务逻辑
					Mytask( items[which]);
				}
			}).create();
			dialog.setTitle("标题1");
			dialog.show();
		}
		//单选列表代码
		if(id==R.id.action_singleItemn){
			final String[]items={"同时转发到QQ","同时转发到微信","同时转发到微博"};
			AlertDialog.Builder builder=new AlertDialog.Builder(this);
			builder.setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() {
				//1表示下标
				@Override
				public void onClick(DialogInterface dialog, int which) {
					Toast.makeText(getApplicationContext(), items[which], Toast.LENGTH_SHORT).show();
					dialog.dismiss();
				}
			});
		AlertDialog dialog=	builder.create();
		dialog.show();
		}
		//多选列表实现
		if(id==R.id.action_MultiItemn){
			final String [] items={"同时转发到QQ","同时转发到微信","同时转发到微博"};
			final boolean checkedItems[]={false,false,false};
			AlertDialog.Builder builder=new AlertDialog.Builder(this);
			builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which, boolean isChecked) {
					
					
				}
			});
			AlertDialog dialog=builder.create();
			dialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定选择", new DialogInterface.OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					//便利这个逻辑有点儿复杂
					String s="";
					for(int i=0;i<checkedItems.length;i++){
						if(checkedItems[i]){
							s=s+""+items[i];
						}
					}
					Toast.makeText(getApplicationContext(), "选中了"+s, Toast.LENGTH_LONG).show();
					
				}
			});
			dialog.show();
		}
		return super.onOptionsItemSelected(item);
	}
}

这里是新建的一个item的布局内容

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.setitemlist_dialog.MainActivity" >

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_settings"/>

    <item
        android:id="@+id/action_list"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="选项列表"/>
    <item 
       	android:id="@+id/action_singleItemn"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="单选列表" />
    <item 
        android:id="@+id/action_MultiItemn"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="多选列表"/>
</menu>


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Android Studio中,可以通过AlertDialogsetMultiChoiceItems方法来创建一个包含多个选项的对话框。 但是,AlertDialogsetMultiChoiceItems方法并不能直接设置字体大小。可是,我们可以通过自定义布局来设置字体大小。 首先,在res文件夹下创建一个新的布局文件,例如"custom_dialog.xml",然后在这个布局文件中添加一个ListView组件,并设置ListView的元素的字体大小。 接下来,在Java代码中使用AlertDialogsetView方法来设置对话框的自定义布局,如下所示: ``` LayoutInflater inflater = getLayoutInflater(); View customView = inflater.inflate(R.layout.custom_dialog, null); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setView(customView); AlertDialog dialog = builder.create(); dialog.show(); ``` 这样就可以通过自定义布局来设置AlertDialog的字体大小了。在自定义布局中,你可以使用各种UI组件,并根据需要设置字体大小。 需要注意的是,对话框的字体大小设置应该与应用的整体风格和设计风格保持一致,遵循用户界面设计的原则和规范,以提供良好的用户体验。 ### 回答2: 在Android Studio中,AlertDialogsetMultiChoiceItems方法用于设置多选对话框的选项列表。但是,setMultiChoiceItems方法本身并不提供直接修改字体大小的选项。如果想要改变多选对话框选项的字体大小,可以通过自定义布局的方式来实现。 首先,需要创建一个自定义的布局文件,例如"my_dialog_layout.xml"。在该布局文件中,可以使用TextView或者其他适合的视图来展示多选对话框的选项,并设置合适的字体大小。 接下来,在代码中使用AlertDialogsetView方法来设置自定义布局文件。具体代码如下: ``` AlertDialog.Builder builder = new AlertDialog.Builder(context); LayoutInflater inflater = LayoutInflater.from(context); View dialogView = inflater.inflate(R.layout.my_dialog_layout, null); builder.setView(dialogView); ``` 然后,可以使用setMultiChoiceItems方法来设置多选对话框的选项列表,并传入需要显示的选项数据: ``` builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { // 处理选项的点击事件 } }); ``` 最后,调用builder的create方法创建对话框,并可以通过调用show方法来显示对话框: ``` AlertDialog dialog = builder.create(); dialog.show(); ``` 通过自定义布局的方式,我们可以自由地控制多选对话框选项的字体大小,以满足个性化的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值