中易网

android开发中获取选中文字以及弹出框

答案:4  悬赏:70  
解决时间 2021-02-19 06:59
在android开发中,我想要让用户可以选取信息中的文字,并根据文字进行搜索。用户可以拖动选择文字。长按所选文字可以弹出搜索框。这样子的功能如何实现???
最佳答案
AlertDialog.Builder有现成的API可以实现显示复选框的内容。
1.创建AlertDialog.Builder并设置数据源
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("复选框"); //设置对话框标题
builder.setIcon(android.R.drawable.ic_menu_more); //设置对话框标题前的图标

final String[] data = getResources().getStringArray(R.array.radio); //通过resources 得到strings.xml中的字符串数组
boolean[] state = new boolean[data.length];
for(int i=0; i state[i] = sboolean.get(i); //将状态集合中的数据取出来,下次选择时候会默认选中
}

2.注册点击事件,并记录复选的数据

builder.setMultiChoiceItems(R.array.radio, state, new DialogInterface.OnMultiChoiceClickListener() {//注册单选择监听事件
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if(isChecked){
Toast.makeText(context,"你选择了: " + data[which], Toast.LENGTH_SHORT).show();
checkBoxData.add(data[which]); //选择的时候要保存起来
}else{
Toast.makeText(context,"你取消了: " + data[which], Toast.LENGTH_SHORT).show();
checkBoxData.remove(data[which]); //取消选中的时候要删除掉
}
sboolean.put(which, isChecked); //每次选择都要记录下这个item的状态
}
});

3.增加确定和取消按键
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你点了确定,选择的是: " + checkBoxData.toString(), Toast.LENGTH_SHORT).show();
}
});

4.设置dialog的相关参数,并弹出
builder.setNegativeButton("取消", null); //取消不做任何处理
builder.setCancelable(true); //设置按钮是否可以按返回键取消,false则不可以取消
AlertDialog dialog = builder.create(); //创建对话框
dialog.setCanceledOnTouchOutside(true); //设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏
dialog.show();
全部回答
只需要在Textview中增加android:textIsSelectable="true"即可长按弹出复制,如果要弹出对话框,那就要用Dialog,dialog的用法如下: Android中,在Dialog中增加EditText需要使用view控件,也可参考附件源代码。 具体实现代码: 1.创建对象框 AlertDialog.Builder builder = new Builder(context); builder.setTitle("请输入"); //设置对话框标题 builder.setIcon(android.R.drawable.btn_star); //设置对话框标题前的图标 2.创建EditText输入框 final EditText edit = new EditText(context); 3.将输入框赋值给Dialog,并增加确定取消按键 builder.setView(edit); builder.setPositiveButton("确认", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(context, "你输入的是: " + edit.getText().toString(), Toast.LENGTH_SHORT).show(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(context, "你点了取消", Toast.LENGTH_SHORT).show(); } }); 4.设置常用api,并show弹出 builder.setCancelable(true); //设置按钮是否可以按返回键取消,false则不可以取消 AlertDialog dialog = builder.create(); //创建对话框 dialog.setCanceledOnTouchOutside(true); //设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏 dialog.show();
这不就是要整一个富文本编辑框吗?有前途!顶一下! ----------------------------------------------------------------------------------------------------- 安卓精英团为你解答 安卓精英团欢迎各位精英加入
如果你不用TextView 而采用 EditText的话,就支持拖动选择文字, 当然也支持长按弹出式菜单, 另外,其它控件只要你让它支持LongTouch事件并实现LongTouch监听器就可以长按后弹出菜单。 另外,如果你不喜欢EditText中的弹出式键盘,你可以隐藏它,并且可以设置文字内容不被改变
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有没有必要把商标全类都注册上?
忻州师范学院和山西财经大学华商学院哪个更好
碱金属元素和卤族元素的物理、化学性质
可以找一个什么理由不上夜班??我女的未成家
中国工商银行淄博临淄支行桓公路东储蓄所这个
qq回复语50字
漫沟在哪里啊,我有事要去这个地方
怎么写升国旗的介绍作文150字
《花田半亩》作者田维坟墓在哪儿半
我要从广州芳村西朗去广州大道南洛溪桥脚的<
松本 奨(去掉低下的“大”字)用日语怎么翻
青少年校外活动中心这个地址在什么地方,我要
性格分析高手来啊!(最好能猜出星座)高分!
青岛汇众学校到底怎么样啊 怎么贴吧里一堆说
实况2011怎么自创球队
推荐资讯
四十二岁女人吃什么保健品可以去脸上的鱼尾纹
如果饲料中蛋白质更多的转化为热量说明了什么
软磁条一般粘贴在衣服的哪里?磁石被水流充洗
春秋航空上面填表办理的信用卡怎么在建行网上
货车怎样防偷油?
华富巷/汇通路(路口)这个地址在什么地方,我
java多线程在main函数里start()与在构造方法
同事问我家小孩乖不乖是什么意思?
斯坦福桥惨案那场比赛结束后德罗巴冲镜头骂了
天津市java程序员一般都多少工资
李记养生堂地址在哪,我要去那里办事
福润华府地址在哪,我要去那里办事
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?