欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android中解决EditText放到popupWindow中,原有复制、粘贴、全选、选择功能失效问题

程序员文章站 2024-03-02 10:17:16
1、原来是将editview放到了popupwindow,发现editview原有的复制、粘贴、全选、选择功能失效了,所以便用dialogfragment代替了popupw...

1、原来是将editview放到了popupwindow,发现editview原有的复制、粘贴、全选、选择功能失效了,所以便用dialogfragment代替了popupwindow

直接上代码

①、先看布局文件

<?xml version="." encoding="utf-"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom"
android:orientation="vertical">
<linearlayout
android:id="@+id/ll_background_dialog"
android:layout_width="match_parent"
android:layout_height="dp"
android:layout_weight=""
android:background="#"
android:alpha="."
android:orientation="horizontal">
</linearlayout>
<scrollview
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white">
<linearlayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffcdcdcd"
android:orientation="vertical">
<relativelayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<imageview
android:id="@+id/iv_quxiao_popup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="dp"
android:src="@drawable/popup_comment_no" />
<textview
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerinparent="true"
android:text="发言"
android:textcolor="#"
android:textsize="sp" />
<imageview
android:id="@+id/iv_write_popup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignparentend="true"
android:layout_alignparentright="true"
android:padding="dp"
android:src="@drawable/popup_commnet_ok" />
</relativelayout>
<edittext
android:id="@+id/et_comment_popup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="dp"
android:background="#ffffff"
android:gravity="top"
android:hint="在这里留言"
android:minlines="" />
<relativelayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginbottom="dp"
android:layout_marginleft="dp"
android:layout_marginright="dp">
<textview
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignparentright="true"
android:text="文明上网"
android:textsize="sp" />
</relativelayout>
</linearlayout>
</scrollview>
</linearlayout> 

②、看自定义diaglogfragment的代码

import android.annotation.suppresslint;
import android.content.context;
import android.graphics.color;
import android.graphics.drawable.colordrawable;
import android.os.bundle;
import android.app.fragment;
import android.support.v.app.dialogfragment;
import android.view.layoutinflater;
import android.view.view;
import android.view.viewgroup;
import android.view.windowmanager;
import android.view.inputmethod.inputmethodmanager;
import android.widget.edittext;
import android.widget.imageview;
import android.widget.linearlayout;
import android.widget.toast;
import com.android.volley.authfailureerror;
import com.android.volley.request;
import com.android.volley.response;
import com.android.volley.volleyerror;
import com.android.volley.toolbox.stringrequest;
import org.json.jsonexception;
import org.json.jsonobject;
import java.util.hashmap;
import java.util.map;
import newairtek.com.app.appapplication;
import newairtek.com.sdnewsandroid.r;
import newairtek.com.url.sdnewsurl;
/**
* a simple {@link fragment} subclass.
*/
@suppresslint("validfragment")
public class customdialogfragment extends dialogfragment {
private imageview iv_quxiao_popup;//取消按钮
private imageview iv_write_popup; //确认按钮
private edittext et_comment_popup;//评论内容
private linearlayout ll_background_dialog;//容器
private boolean iscommenting = false;
private string uid;
private string id;
private string cid;
public customdialogfragment(string uid, string id, string cid) {
this.uid = uid;
this.id = id;
this.cid = cid;
}
@override
public void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
//这句代码的意思是让dialogfragment弹出时沾满全屏
setstyle(dialogfragment.style_normal, android.r.style.theme_holo_light_dialogwhenlarge_noactionbar);
}
@override
public view oncreateview(layoutinflater inflater, viewgroup container,
bundle savedinstancestate) {
view view = inflater.inflate(r.layout.popup_write_comment, null);
//让dialogfragment的背景为透明
getdialog().getwindow().setbackgrounddrawable(new colordrawable(color.transparent));
initview(view);
initevent();
return view;
}
//初始化view
private void initview(view view) {
iv_quxiao_popup = (imageview) view.findviewbyid(r.id.iv_quxiao_popup);
iv_write_popup = (imageview) view.findviewbyid(r.id.iv_write_popup);
et_comment_popup = (edittext) view.findviewbyid(r.id.et_comment_popup);
ll_background_dialog = (linearlayout) view.findviewbyid(r.id.ll_background_dialog);
}
private void initevent(){
//取消
iv_quxiao_popup.setonclicklistener(new view.onclicklistener() {
@override
public void onclick(view view) {
dismiss();
}
});
//确认发送
iv_write_popup.setonclicklistener(new view.onclicklistener() {
@override
public void onclick(view view) {
if (et_comment_popup.gettext().tostring().length() > ) {
if (!iscommenting) {
iscommenting = true;
} else {
toast.maketext(getactivity(), "正在评论,请勿重复操作", toast.length_long).show();
}
} else {
toast.maketext(getactivity(), "内容不能为空", toast.length_short).show();
}
}
});
ll_background_dialog.setonclicklistener(new view.onclicklistener() {
@override
public void onclick(view view) {
dismiss();
}
});
}
}

3、如何使用

fragmentmanager manager = getsupportfragmentmanager();//区分是v的fragment还是app包里面的
customdialogfragment dialogfragment = new customdialogfragment(uid, id, cid);
dialogfragment.show(manager, "custom"); 

效果图

Android中解决EditText放到popupWindow中,原有复制、粘贴、全选、选择功能失效问题