针对android–如何在显示Toast后进行edittext自动对焦?和android中toast用法这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展AndroidAlertDiaog自定
针对android – 如何在显示Toast后进行edittext自动对焦?和android中toast用法这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展Android AlertDiaog自定义EditText自动弹出软键盘、Android Camera对焦相关基础自动对焦,手动对焦、Android Custom EditText未在ICS中显示光标、Android EditText Style.xml更改FOCUS EditText等相关知识,希望可以帮助到你。
本文目录一览:- android – 如何在显示Toast后进行edittext自动对焦?(android中toast用法)
- Android AlertDiaog自定义EditText自动弹出软键盘
- Android Camera对焦相关基础自动对焦,手动对焦
- Android Custom EditText未在ICS中显示光标
- Android EditText Style.xml更改FOCUS EditText
android – 如何在显示Toast后进行edittext自动对焦?(android中toast用法)
final EditText procura_codbar = (EditText) findViewById(R.id.procurar_produto_codbar); procura_codbar.setonKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v,int keyCode,KeyEvent event) { if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) { String codbar = procura_codbar.getText().toString(); if (codbar.length()<13){ Toast.makeText(MainActivity.this,"type a 13 digit barcode",Toast.LENGTH_LONG).show(); } else{ if (bdh!=null){ bdh.closedb(); bdh.close(); } bdh = new DBHelper(MainActivity.this); Log.i("CODBAR",codbar); produto prod_ = bdh.getProduto(codbar); if (prod_!=null){ showDialogPreco(prod_); procura_codbar.setText(""); }else{ Toast.makeText(MainActivity.this,"Product not found",Toast.LENGTH_SHORT).show(); procura_codbar.setSelection(codbar.length()); } } procura_codbar.requestFocus(); procura_codbar.setSelection(codbar.length()); } return false; } });
这是XML:
<EditText android:id="@+id/procurar_produto_codbar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:inputType="textNoSuggestions|number" android:textSize="22sp" android:maxLength="13" android:layout_toRightOf="@+id/tv_procura_codbar" > <requestFocus /> </EditText>
提前致谢.
编辑:弄乱这个,我发现了问题.继承人解决方案:
return true;
现在它有效……
解决方法
Toast.makeText(MainActivity.this,Toast.LENGTH_LONG).show(); procura_codbar.setFocusableInTouchMode(true); procura_codbar.setFocusable(true); procura_codbar.requestFocus(); procura_codbar.setSelection(codbar.length());
这对我有用.您还需要删除代码底部的* procura_codbar.requestFocus(); *.
Android AlertDiaog自定义EditText自动弹出软键盘
自定义AlertDialog
public class BaseAlertDialog implements OnClickListener{
private AlertDialog mAlertDialog;
private EditText number_et;
private Button cancel_btn;
private Button confirm_btn;
private Context mContext;
public BaseAlertDialog(Context context)
{
this.mContext = context;
mAlertDialog = new AlertDialog.Builder(mContext).create();
mAlertDialog.show();
mAlertDialog.setContentView(R.layout.base_dialog_main);
number_et = (EditText) mAlertDialog.findViewById(R.id.number_et);
cancel_btn = (Button) mAlertDialog.findViewById(R.id.cancel_btn);
confirm_btn = (Button) mAlertDialog.findViewById(R.id.confirm_btn);
cancel_btn.setOnClickListener(this);
confirm_btn.setOnClickListener(this);
number_et.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
((InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);
mAlertDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
mAlertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
}
});
}
private DialogNumber mDialogNumber;
public DialogNumber getmDialogNumber() {
return mDialogNumber;
}
public void setmDialogNumber(DialogNumber mDialogNumber) {
this.mDialogNumber = mDialogNumber;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.cancel_btn:
mAlertDialog.dismiss();
break;
case R.id.confirm_btn:
if (number_et.getText().length() != 0) {
mDialogNumber.callBack(number_et.getText().toString());
mAlertDialog.dismiss();
}else{
Toast.makeText(mContext, " 值不能为空", 2000).show();
}
break;
}
}
public interface DialogNumber{
void callBack(String string);
}
}
主MainActivity:
public class MainActivity extends FragmentActivity implements OnClickListener,DialogNumber{
private Button btn_dialog;
private TextView number_tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_dialog = (Button) findViewById(R.id.btn_dialog);
number_tv = (TextView) findViewById(R.id.number_tv);
btn_dialog.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_dialog:
new BaseAlertDialog(MainActivity.this).setmDialogNumber(MainActivity.this);
break;
default:
break;
}
}
@Override
public void callBack(String string) {
number_tv.setText(string);
}
}
Android Camera对焦相关基础自动对焦,手动对焦
原文链接:https://blog.csdn.net/u010126792/article/details/86692877https://blog.csdn.net/u010126792/article/details/86692877
Android Custom EditText未在ICS中显示光标
为了避免出现软键盘,我有一个自定义的EditText类,如下所示:
public class CustomEditText extends EditText { public CustomEditText(Context context) { super(context); } public CustomEditText(Context context,AttributeSet attrs) { super(context,attrs); } @Override // disables Keyboard; public boolean onCheckIsTextEditor() { return false; } }
这会成功阻止键盘出现,但在ICS中,这种方法也会阻止Cursor出现.
setCursorVisible(true)没有任何效果.
我已经尝试了隐藏软键盘的替代方法,例如使用android:editable =“false”和.setKeyListener(null);但这些解决方案都没有在我的测试中发挥过作用.键盘总是出现.
那么,有没有办法在ICS中返回光标,同时保持onCheckIsTextEditor覆盖原样?
解决方法
PINLockactivity.java
//text field for input sequrity pin txtPin=(EditText) findViewById(R.id.txtpin); txtPin.setInputType( InputType.TYPE_CLASS_NUMBER | InputType.TYPE_TEXT_VARIATION_PASSWORD); txtPin.setSelection(txtPin.getText().length()); txtPin.setTextSize(22); txtPin.setSingleLine(true); //disable keypad txtPin.setonTouchListener(new OnTouchListener(){ @Override public boolean onTouch(View v,MotionEvent event) { int inType = txtPin.getInputType(); // backup the input type txtPin.setInputType(InputType.TYPE_NULL); // disable soft input txtPin.onTouchEvent(event); // call native handler txtPin.setInputType(inType); // restore input type return true; // consume touch even } });
并为此EditText字段
xml代码是
<EditText android:layout_width="wrap_content" android:id="@+id/txtpin" android:maxLength="4" android:layout_height="37dp" android:gravity="center_horizontal" android:longClickable="false" android:padding="2dp" android:inputType="textPassword|number" android:password="true" android:background="@drawable/edittext_shadow" android:layout_weight="0.98" android:layout_marginLeft="15dp"> <requestFocus></requestFocus> </EditText>
这对我来说可以正常使用光标输入安全PIN.
我从按钮而不是键盘输入输入.
Android EditText Style.xml更改FOCUS EditText
下午好,
伙计们,我现在为所有字段style.xml EditText做了一个样式文件,当该字段获得焦点时,我想更改样式.怎么办
解决方法:
您必须为编辑文本的每种状态定义可绘制对象.您在drawables文件夹中创建一个xml文件,该文件定义了编辑文本的所有状态drawable. XML文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@[package:]drawable/drawable_resource"
android:state_pressed=["true" | "false"]
android:state_focused=["true" | "false"]
android:state_hovered=["true" | "false"]
android:state_selected=["true" | "false"]
android:state_checkable=["true" | "false"]
android:state_checked=["true" | "false"]
android:state_enabled=["true" | "false"]
android:state_activated=["true" | "false"]
android:state_window_focused=["true" | "false"] />
</selector>
您为要指定的每个可绘制状态制作了一项.因此,对于state_focused的可绘制对象,您只需执行以下操作:
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/myFocusedEditText"
android:state_focused="true"/>
<item
android:drawable="@drawable/myEnabledEditText"
android:state_enabled="true"/>
</selector>
将此XML文件命名为custom_edit_text.xml,确保它位于drawables文件夹中.
然后,您要做的就是在styles.xml中定义
<style name="my_edit_text">
<item name="android:drawable">@drawable/custom_edit_text</item>
</style>
祝好运!
关于android – 如何在显示Toast后进行edittext自动对焦?和android中toast用法的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Android AlertDiaog自定义EditText自动弹出软键盘、Android Camera对焦相关基础自动对焦,手动对焦、Android Custom EditText未在ICS中显示光标、Android EditText Style.xml更改FOCUS EditText等相关内容,可以在本站寻找。
本文标签: