当前位置: 移动技术网 > IT编程>移动开发>Android > Android开发仿咸鱼键盘DEMO(修改版)

Android开发仿咸鱼键盘DEMO(修改版)

2019年07月24日  | 移动技术网IT编程  | 我要评论

法外风云 粤语,刘志庚为什么怕太子辉,深汕新区

在这里布局我就不贴出来了

/** 
* 最终被调用的修改价格dialog 
*/ 
protected void editpricedialog() { 
// todo auto-generated method stub 
editpriceview = view.inflate(this, r.layout.dialog_price_input_keyboard, null); 
pricedialog = new dialog(this, r.style.contactdialog); 
pricedialog.requestwindowfeature(window.feature_no_title); 
window pricedialogwindow = pricedialog.getwindow(); 
pricedialogwindow.setgravity(gravity.bottom); 
pricedialog.setcontentview(editpriceview); 
pricedialog.getwindow().getattributes().windowanimations = r.style.dialoganimation; 
pricedialog.show(); 
tv_softkb_point = (textview) editpriceview.findviewbyid(r.id.tv_softkb_point); 
buffer = new stringbuffer(); 
stringbuffer = buffer.tostring(); 
buffer2 = new stringbuffer(); 
stringbuffer2 = buffer2.tostring(); 
etgoodsprice = (edittext) editpriceview.findviewbyid(r.id.et_goodsprice); 
etgoodsprice.addtextchangedlistener(new textwatcher() { 
private string etpricetrim; 
@override 
public void ontextchanged(charsequence s, int start, int before, int count) { 
etpricetrim = s.tostring().trim(); 
if (etpricetrim.length() == 1 && s.tostring().equals(".")) { //如果edittext的长度为1并且用户只输入了一个.那么buffer里追加"0" + "." 同时删除我们输入的点 
//如果不删除的在则 buffer里的数据会是 .0. 
buffer.append("0").append(".").deletecharat(0); 
etgoodsprice.settext(buffer.tostring()); 
} 
if (s.tostring().contains(".")) { //如果s里包含点 
if (s.length() - 1 - s.tostring().indexof(".") > 2) { 
if(tv_softkb_point!=null){ 
tv_softkb_point.setclickable(false); 
} 
if(buffer!=null&&buffer.length()>=1){ 
buffer.deletecharat(buffer.length()-1); 
} 
s = s.tostring().subsequence(0, s.tostring().indexof(".") + 3); 
etgoodsprice.settext(s); 
etgoodsprice.setselection(s.length()); 
} 
else if(s.length()-1-s.tostring().indexof(".")<=2){ 
if(tv_softkb_point!=null){ 
tv_softkb_point.setclickable(false); 
} 
} 
} 
else { 
if(tv_softkb_point!=null) { 
tv_softkb_point.setclickable(true); 
tv_softkb_point.setenabled(true); 
} 
} 
if (s.tostring().startswith("0") && s.tostring().trim().length() > 1) { //如果以0开头长度大于1 第二个元素不是. 
if (!s.tostring().substring(1, 2).equals(".")) { 
buffer.deletecharat(1); 
etgoodsprice.settext(s.subsequence(0, 1)); 
etgoodsprice.setselection(1); 
return; 
} 
} 
} 
@override 
public void beforetextchanged(charsequence s, int start, int count, int after) { 
} 
@override 
public void aftertextchanged(editable s) { 
int length = etpricetrim.length(); 
if (length >=1) { 
etgoodsprice.setselection(length); 
} else { 
etgoodsprice.setselection(0); 
} 
// toast.maketext(postissueactivity.this,s.tostring(), 0).show(); 
if(s.tostring()!=null&&s.tostring().contains(".")){ //通过s取出当前editext上的传 来判断是否包含. 如果包含的话则把 clickbale设置成false同时置为不可点击 
if(tv_softkb_point!=null) { 
tv_softkb_point.setclickable(false); 
tv_softkb_point.setenabled(false); 
} 
} 
// if(s.tostring().length()==1&&s.tostring().equals("0")) { //如果长度是1 并且是以0开头 这个时候光标是定位在0后 则删除buffer 
// //里的第一个char 并设置 
// 
//// buffer.deletecharat(0); 
//// etgoodsprice.settext(buffer.tostring()); 
// 
// } 
} 
}); 
if (!ipriceedit.gettext().tostring().substring(1, ipriceedit.gettext().length()).tostring().equals("0.00")) { 
etgoodsprice 
.settext(ipriceedit.gettext().tostring().substring(1, ipriceedit.gettext().length()).tostring()); 
etgoodsprice.setselection(etgoodsprice.length()); 
buffer.append(ipriceedit.gettext().tostring().substring(1, ipriceedit.gettext().length()).tostring()); 
} else { 
etgoodsprice.settext(""); 
etgoodsprice.sethint("0.00"); 
buffer.append(""); 
} 
etoriginalprice = (edittext) editpriceview.findviewbyid(r.id.et_originalprice); 
etoriginalprice.addtextchangedlistener(new textwatcher() { 
private string trim; 
@override 
public void ontextchanged(charsequence s, int start, int before, int count) { 
trim = s.tostring().trim(); 
if (etoriginalprice.length() == 1 && s.tostring().equals(".")) { 
buffer2.append("0").append(".").deletecharat(0); 
etoriginalprice.settext(buffer2.tostring()); 
} 
if (s.tostring().contains(".")) { 
if (s.length() - 1 - s.tostring().indexof(".") > 2) { 
if(tv_softkb_point!=null){ 
tv_softkb_point.setclickable(false); 
} 
if(buffer2!=null&&buffer2.length()>=1){ 
buffer2.deletecharat(buffer2.length()-1); 
} 
s = s.tostring().subsequence(0, s.tostring().indexof(".") + 3); 
etoriginalprice.settext(s); 
etoriginalprice.setselection(s.length()); 
} 
else if(s.length()-1-s.tostring().indexof(".")<=2){ 
if(tv_softkb_point!=null){ 
tv_softkb_point.setclickable(false); 
} 
} 
} 
else { 
if(tv_softkb_point!=null) { 
tv_softkb_point.setclickable(true); 
tv_softkb_point.setenabled(true); 
} 
} 
if (s.tostring().startswith("0") && s.tostring().trim().length() > 1) { 
if (!s.tostring().substring(1, 2).equals(".")) { 
buffer2.deletecharat(1); 
etoriginalprice.settext(s.subsequence(0, 1)); 
etoriginalprice.setselection(1); 
return; 
} 
} 
} 
@override 
public void beforetextchanged(charsequence s, int start, int count, int after) { 
// todo auto-generated method stub 
} 
@override 
public void aftertextchanged(editable s) { 
// todo auto-generated method stub 
int length = trim.length(); 
if (length >=1) { 
etoriginalprice.setselection(length); 
} else { 
etoriginalprice.setselection(0); 
} 
if(s.tostring()!=null&&s.tostring().contains(".")){ 
if(tv_softkb_point!=null) { 
tv_softkb_point.setclickable(false); 
tv_softkb_point.setenabled(false); 
} 
} 
// if(s.tostring().length()==1&&s.tostring().equals("0")) { //如果长度是1 并且是以0开头 这个时候光标是定位在0后 则删除buffer 
// //里的第一个char 并设置 
// 
// buffer2.deletecharat(0); 
// etoriginalprice.settext(buffer2.tostring()); 
// 
// } 
} 
}); 
etoriginalprice.setselection(etoriginalprice.length()); 
if (!ioldpriceedit.gettext().subsequence(1, ioldpriceedit.gettext().length()).tostring().equals("0.00")) { 
etoriginalprice 
.settext(ioldpriceedit.gettext().subsequence(1, ioldpriceedit.gettext().length()).tostring()); 
buffer2.append(ioldpriceedit.gettext().subsequence(1, ioldpriceedit.gettext().length()).tostring()); 
} else { 
etoriginalprice.settext(""); 
etoriginalprice.sethint("0.00"); 
buffer2.append(""); 
} 
// etoriginalprice.requestfocus(); 
// etoriginalprice.setselection(etgoodsprice.gettext().length()); 
imageview tv_softkb_hiddenkb = (imageview) editpriceview.findviewbyid(r.id.tv_softkb_hiddenkb); 
imageview ivdelete = (imageview) editpriceview.findviewbyid(r.id.iv_delete); 
ivdelete.setonclicklistener(new onclicklistener() { 
@override 
public void onclick(view v) { 
// toast.maketext(postissueactivity.this, "dddd", 0).show(); 
delnumber(); 
} 
}); 
// 长按删除键 事件 
ivdelete.setonlongclicklistener(new onlongclicklistener() { 
@override 
public boolean onlongclick(view v) { 
if (etgoodsprice.hasfocus()) { 
buffer.delete(0, etgoodsprice.gettext().length()); 
// if(etgoodsprice.gettext().length()>=1){ 
// buffer.deletecharat(etgoodsprice.gettext().length()-1); 
// } 
stringbuffer = buffer.tostring(); 
etgoodsprice.settext(stringbuffer.substring(0, stringbuffer.length())); 
} 
if (etoriginalprice.hasfocus()) { 
buffer2.delete(0, etoriginalprice.gettext().length()); 
// if(etoriginalprice.gettext().length()>=1){ 
// buffer2.deletecharat(etoriginalprice.gettext().length()-1); 
// } 
stringbuffer2 = buffer2.tostring(); 
etoriginalprice.settext(stringbuffer2.substring(0, stringbuffer2.length())); 
} 
return false; 
} 
}); 
setnumber(buffer, buffer2, etgoodsprice, etoriginalprice); 
tv_softkb_hiddenkb.setonclicklistener(new onclicklistener() { 
@override 
public void onclick(view v) { 
editpriceview.clearanimation(); 
pricedialog.cancel(); 
} 
}); 
textview confirmkb = (textview) editpriceview.findviewbyid(r.id.tv_confirmkb); 
hiddensoftkb(etgoodsprice, etoriginalprice); 
confirmkb.setonclicklistener(new onclicklistener() { 
@suppresslint("newapi") 
@override 
public void onclick(view v) { 
// ipriceedit 
// ioldpriceedit 
if (buffer != null) { 
// ipriceedit.settext("¥"+buffer.tostring()); 
ipriceedit.settext("¥" + etgoodsprice.gettext().tostring()); 
if (etgoodsprice.gettext().tostring().equals("")) { 
ipriceedit.settext("¥" + "0.00"); 
} 
} 
if (buffer2 != null) { 
// ioldpriceedit.settext("¥"+buffer2.tostring()); 
ioldpriceedit.settext("¥" + etoriginalprice.gettext().tostring()); 
if (etoriginalprice.gettext().tostring().equals("")) { 
ioldpriceedit.settext("¥" + "0.00"); 
} 
} 
if(etgoodsprice.gettext().tostring().equals("")){ 
etgoodsprice.settext("0.00"); 
} 
if(etoriginalprice.gettext().tostring().equals("")){ 
etoriginalprice.settext("0.00"); 
} 
if(double.valueof(etgoodsprice.gettext().tostring())>double.valueof(etoriginalprice.gettext().tostring())) { 
// toast.maketext(postissueactivity.this, "售价高于原价,是否确认?", 0).show(); 
publicdialog priceismaxdialog = publicdialog.createdialog(postissueactivity.this, new dialogbtnclicklistener() { 
@override 
public void onclick(view view) { 
switch (view.getid()) { 
case r.id.public_dialog_cancel: 
editpriceview.clearanimation(); 
pricedialog.cancel(); 
break; 
case r.id.public_dialog_confirm: 
editpriceview.clearanimation(); 
pricedialog.cancel(); 
break; 
default: 
break; 
} 
} 
}); 
window dialogwindow = priceismaxdialog.getwindow(); 
display display = getwindowmanager().getdefaultdisplay(); 
windowmanager.layoutparams lp = dialogwindow.getattributes(); 
lp.width = (int) (display.getwidth() * 0.99); 
dialogwindow.setattributes(lp); 
priceismaxdialog.show(); 
linearlayout llpublic = (linearlayout) priceismaxdialog.findviewbyid(r.id.ll_public_dialog); 
llpublic.setbackground(getresources().getdrawable(r.drawable.public_dialog_botom_corner_shape_wite)); 
priceismaxdialog.onwindowfocuschanged(true); 
// view splitling = priceismaxdialog.findviewbyid(r.id.v_line); 
// splitling.setbackgroundcolor(color.color_eaeaea); 
priceismaxdialog.setlinecolor(color.parsecolor("#e9e9eb")); 
priceismaxdialog.settitle("提示"); 
priceismaxdialog.setcontent("出价高于原价,是否确认?"); 
priceismaxdialog.settitlevisibility(true); 
textview contentview = priceismaxdialog.getcontentview(); 
contentview.settextsize(16); 
contentview.setgravity(gravity.center); 
contentview.setpadding(0, 0, 0, 10); 
android.view.viewgroup.layoutparams layout = contentview.getlayoutparams(); 
layout.width = lp.match_parent; 
layout.height = 120; 
contentview.setlayoutparams(layout); 
textview publicdialogcancle = (textview) priceismaxdialog.findviewbyid(r.id.public_dialog_cancel); 
publicdialogcancle.settext("否"); 
priceismaxdialog.setcanceltextcolor(color.parsecolor("#037bfe")); 
// priceismaxdialog.setcancelbackground(color.parsecolor("#ffffff")); 
// publicdialogcancle.settextcolor(color.app_green); 
textview publicdialogconfirm = (textview) priceismaxdialog.findviewbyid(r.id.public_dialog_confirm); 
publicdialogconfirm.settext("是"); 
priceismaxdialog.setconfirmtextcolor(color.parsecolor("#037bfe")); 
// priceismaxdialog.setconfirmbackground(color.parsecolor("#ffffff")); 
// publicdialogconfirm.settextcolor(color.app_green); 
// publicdialogconfirm.setbackground(getresources().getdrawable(r.drawable.coners_save_bg)); 
priceismaxdialog.findviewbyid(r.id.vv_hor).setvisibility(view.visible); 
} 
editpriceview.clearanimation(); 
pricedialog.cancel(); 
} 
}); 
} 
/** 
* 删除输入的金额 
*/ 
protected void delnumber() { 
if (etgoodsprice.hasfocus()) { 
// buffer.delete(0, etgoodsprice.gettext().length()); 
if (etgoodsprice.gettext().length() >= 1) { 
buffer.deletecharat(etgoodsprice.gettext().length() - 1); 
// buffer.deletecharat(etgoodsprice.gettext().length()); 
} 
stringbuffer = buffer.tostring(); 
etgoodsprice.settext(stringbuffer.substring(0, stringbuffer.length())); 
etgoodsprice.setselection(etgoodsprice.length()); 
} 
if (etoriginalprice.hasfocus()) { 
// buffer2.delete(0,etoriginalprice.gettext().length()); 
if (etoriginalprice.gettext().length() >= 1) { 
buffer2.deletecharat(etoriginalprice.gettext().length() - 1); 
// buffer2.deletecharat(etoriginalprice.gettext().length()); 
} 
stringbuffer2 = buffer2.tostring(); 
etoriginalprice.settext(stringbuffer2.substring(0, stringbuffer2.length())); 
etoriginalprice.setselection(etoriginalprice.length()); 
} 
} 
/** 
* 输入金额 
* 
* @param buffer 
* @param buffer2 
* @param etgoodsprice 
* @param etoriginalprice 
*/ 
private void setnumber(final stringbuffer buffer, final stringbuffer buffer2, final edittext etgoodsprice, 
final edittext etoriginalprice) { 
textview tv_softkb_1 = (textview) editpriceview.findviewbyid(r.id.tv_softkb_1); 
tv_softkb_1.setonclicklistener(new onclicklistener() { 
@override 
public void onclick(view v) { 
if (etgoodsprice.hasfocus()) { 
buffer.append("1"); 
etgoodsprice.settext(buffer.tostring()); 
} 
if (etoriginalprice.hasfocus()) { 
buffer2.append("1"); 
etoriginalprice.settext(buffer2.tostring()); 
} 
} 
}); 
textview tv_softkb_2 = (textview) editpriceview.findviewbyid(r.id.tv_softkb_2); 
tv_softkb_2.setonclicklistener(new onclicklistener() { 
@override 
public void onclick(view v) { 
if (etgoodsprice.hasfocus()) { 
buffer.append("2"); 
etgoodsprice.settext(buffer.tostring()); 
} 
if (etoriginalprice.hasfocus()) { 
buffer2.append("2"); 
etoriginalprice.settext(buffer2.tostring()); 
} 
} 
}); 
textview tv_softkb_3 = (textview) editpriceview.findviewbyid(r.id.tv_softkb_3); 
tv_softkb_3.setonclicklistener(new onclicklistener() { 
@override 
public void onclick(view v) { 
if (etgoodsprice.hasfocus()) { 
buffer.append("3"); 
etgoodsprice.settext(buffer.tostring()); 
} 
if (etoriginalprice.hasfocus()) { 
buffer2.append("3"); 
etoriginalprice.settext(buffer2.tostring()); 
} 
} 
}); 
textview tv_softkb_4 = (textview) editpriceview.findviewbyid(r.id.tv_softkb_4); 
tv_softkb_4.setonclicklistener(new onclicklistener() { 
@override 
public void onclick(view v) { 
if (etgoodsprice.hasfocus()) { 
buffer.append("4"); 
etgoodsprice.settext(buffer.tostring()); 
} 
if (etoriginalprice.hasfocus()) { 
buffer2.append("4"); 
etoriginalprice.settext(buffer2.tostring()); 
} 
} 
}); 
textview tv_softkb_5 = (textview) editpriceview.findviewbyid(r.id.tv_softkb_5); 
tv_softkb_5.setonclicklistener(new onclicklistener() { 
@override 
public void onclick(view v) { 
if (etgoodsprice.hasfocus()) { 
buffer.append("5"); 
etgoodsprice.settext(buffer.tostring()); 
} 
if (etoriginalprice.hasfocus()) { 
buffer2.append("5"); 
etoriginalprice.settext(buffer2.tostring()); 
} 
} 
}); 
textview tv_softkb_6 = (textview) editpriceview.findviewbyid(r.id.tv_softkb_6); 
tv_softkb_6.setonclicklistener(new onclicklistener() { 
@override 
public void onclick(view v) { 
if (etgoodsprice.hasfocus()) { 
buffer.append("6"); 
etgoodsprice.settext(buffer.tostring()); 
} 
if (etoriginalprice.hasfocus()) { 
buffer2.append("6"); 
etoriginalprice.settext(buffer2.tostring()); 
} 
} 
}); 
textview tv_softkb_7 = (textview) editpriceview.findviewbyid(r.id.tv_softkb_7); 
tv_softkb_7.setonclicklistener(new onclicklistener() { 
@override 
public void onclick(view v) { 
if (etgoodsprice.hasfocus()) { 
buffer.append("7"); 
etgoodsprice.settext(buffer.tostring()); 
} 
if (etoriginalprice.hasfocus()) { 
buffer2.append("7"); 
etoriginalprice.settext(buffer2.tostring()); 
} 
} 
}); 
textview tv_softkb_8 = (textview) editpriceview.findviewbyid(r.id.tv_softkb_8); 
tv_softkb_8.setonclicklistener(new onclicklistener() { 
@override 
public void onclick(view v) { 
if (etgoodsprice.hasfocus()) { 
buffer.append("8"); 
etgoodsprice.settext(buffer.tostring()); 
} 
if (etoriginalprice.hasfocus()) { 
buffer2.append("8"); 
etoriginalprice.settext(buffer2.tostring()); 
} 
} 
}); 
textview tv_softkb_9 = (textview) editpriceview.findviewbyid(r.id.tv_softkb_9); 
tv_softkb_9.setonclicklistener(new onclicklistener() { 
@override 
public void onclick(view v) { 
if (etgoodsprice.hasfocus()) { 
buffer.append("9"); 
etgoodsprice.settext(buffer.tostring()); 
} 
if (etoriginalprice.hasfocus()) { 
buffer2.append("9"); 
etoriginalprice.settext(buffer2.tostring()); 
} 
} 
}); 
textview tv_softkb_0 = (textview) editpriceview.findviewbyid(r.id.tv_softkb_0); 
tv_softkb_0.setonclicklistener(new onclicklistener() { 
@override 
public void onclick(view v) { 
if (etgoodsprice.hasfocus()) { 
buffer.append("0"); 
etgoodsprice.settext(buffer.tostring()); 
} 
if (etoriginalprice.hasfocus()) { 
buffer2.append("0"); 
etoriginalprice.settext(buffer2.tostring()); 
} 
} 
}); 
tv_softkb_point.setonclicklistener(new onclicklistener() { 
@override 
public void onclick(view v) { 
if (etgoodsprice.hasfocus()) { 
buffer.append("."); 
etgoodsprice.settext(buffer.tostring()); 
} 
if (etoriginalprice.hasfocus()) { 
buffer2.append("."); 
etoriginalprice.settext(buffer2.tostring()); 
} 
} 
}); 
} 
/** 
* 使用edittext获取焦点弹不出软件键盘 
* 
* @param etgoodsprice 
* @param etoriginalprice 
*/ 
private void hiddensoftkb(final edittext etgoodsprice, final edittext etoriginalprice) { 
etgoodsprice.setontouchlistener(new ontouchlistener() { 
@override 
public boolean ontouch(view v, motionevent event) { 
int intype = etgoodsprice.getinputtype(); // backup the input 
// type 
etgoodsprice.setinputtype(inputtype.type_null); // disable soft 
// input 
etgoodsprice.ontouchevent(event); // call native handler 
etgoodsprice.setinputtype(intype); // restore input type 
etgoodsprice.setselection(etgoodsprice.gettext().length()); 
return true; 
} 
}); 
etoriginalprice.setontouchlistener(new ontouchlistener() { 
@override 
public boolean ontouch(view v, motionevent event) { 
int intype = etoriginalprice.getinputtype(); // backup the input 
// type 
etoriginalprice.setinputtype(inputtype.type_null); // disable 
// soft 
// input 
etoriginalprice.ontouchevent(event); // call native handler 
etoriginalprice.setinputtype(intype); // restore input type 
etoriginalprice.setselection(etoriginalprice.gettext().length()); 
return true; 
} 
}); 
} 
/** 
* 输入原价和价格dialog 
*/ 
private void showmofityprice() { 
// todo auto-generated method stub 
mofityprice.setonclicklistener(new onclicklistener() { 
@override 
public void onclick(view v) { 
// ipriceedit 
// ioldpriceedit 
// ipriceedit.setfocusable(true); 
hiddenkeyboard(); 
editpricedialog(); 
} 
}); 
}

以上所述是小编给大家介绍的android开发仿咸鱼键盘修改版,希望对大家有所帮助

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网