单选择对话框选择内容返回值的调用

本文介绍了如何在Android中创建一个没有确定按钮的单选择对话框,并通过内部接口在Activity或Fragment中获取并处理返回的选择值。示例包括在MainActivity和Fragment中的具体实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单独的列表选择框,不需要确定按钮,通过内部接口类,在activity或者 fragment中接收返回值:

public class SelectSortDialog  extends AlertDialog.Builder implements DialogInterface.OnClickListener {
    private int topicID=-1;//如果需要返回的是第几项,用这个,从0开始
    private String toSort="";//直接返回选择的内容,
    private OnTestListening onTestListening;
    public SelectSortDialog(Context context,final OnTestListening onTestListening) {
        super(context);
        this.onTestListening=onTestListening;
        Vector<String> vec=getSort(); //获得选择项列表,可以是数组,或者从数据库中获取
        final String[] datas=vec.toArray(new String[]{});
		   this.setTitle("选择需要更换的分类");
		    this.setItems(datas, new DialogInterface.OnClickListener() {
		        @Override
		        public void onClick(DialogInterface dialog, int topicID) {
		        	//onTestListening.getTopicID(topicID);
		        	onTestListening.getTopicID(datas[topicID]);
		        }
		    });
        this.show();
    }
    public interface OnTestListening{//内部接口类
        // void getTopicID(int topicID);
    	void getTopicID(String toSort);
    }
    public void setTopicID(int topicID) {
        this.topicID = topicID;
    }
	@Override
	public void onClick(DialogInterface dialog, int which) {
		// TODO 自动生成的方法存根
//		 onTestListening.getTopicID(topicID);
		 onTestListening.getTopicID(toSort);
	}

在MainActivity中使用

  		SelectSortDialog selectsortdialog=new SelectSortDialog(MainActivity.this,new SelectSortDialog.OnTestListening() {
    			@Override
    			//public void getTopicID(int topicID) {
    			public void getTopicID(String toSort) {
    				// TODO 自动生成的方法存根
    				System.out.println(toSort);
    			}
    		});

在fragment中使用

SelectSortDialog selectsortdialog=new SelectSortDialog(getContext(),new SelectSortDialog.OnTestListening() {
	//getContext()或者 getActivity()
	@Override
	//public void getTopicID(int topicID) {
	public void getTopicID(String toSort) {
		// TODO 自动生成的方法存根
    				System.out.println(toSort);
	}
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值