发布网友 发布时间:2022-04-23 03:48
共3个回答
热心网友 时间:2023-10-13 20:00
只需要在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();
热心网友 时间:2023-10-13 20:00
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<data.length; i++){
state[i] = sboolean.get(i);//将状态集合中的数据取出来,下次选择时候会默认选中
}
2.注册点击事件,并记录复选的数据
/*
* 第一个参数是,数据原,可以是数组,也可以传strings.xml那的字符串ID,但是建议用数组,因为多选监听返回的是数组的标下
* 第二个参数是,默认的选中位置,是个boolean数组,对应item的位置
* 第三个是列表点击监听事件
*/
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();
热心网友 时间:2023-10-13 20:01
如果你不用TextView 而采用 EditText的话,就支持拖动选择文字,
当然也支持长按弹出式菜单, 另外,其它控件只要你让它支持LongTouch事件并实现LongTouch*就可以长按后弹出菜单。
另外,如果你不喜欢EditText中的弹出式键盘,你可以隐藏它,并且可以设置文字内容不被改变