我想编辑文本,但仅在> onclick 事件上,并完成光标可见度应该像以前一样是 false 。只有OnClick事件才能显示光标和编辑启用一完成输入并按下键盘操作按钮,它应该制作光标可见性 false 再次
这是XML Part
<EditText
android:id="@+id/pname"
android:textStyle="bold"
android:layout_toRightOf="@+id/profileimg"
android:inputType="none"
android:layout_marginBottom="15dp"
android:layout_alignParentBottom="true"
android:layout_marginLeft="15dp"
android:textAllCaps="true"
android:cursorVisible="false"
android:background="@android:color/transparent"
android:hint="@string/nickname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLength="10"
android:clickable="true"
android:onClick="onClick"/>
这是编码部分:
pname = (EditText) findViewById(R.id.pname);
pname.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pname.setInputType(0x0000006);
pname.setCursorVisible(true);
}
});
/*pname.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
pname.setCursorVisible(false);
} else {
pname.setCursorVisible(false);
}
}
});
*/
pname.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER || actionId ==EditorInfo.IME_ACTION_DONE) {
if (!event.isShiftPressed()) {
pname.setCursorVisible(false);
return true; // consume.
}
}
return false;
}
});
问题/错误:看来,一旦我完成打字,请按键盘操作完成键,我的活动不幸地停止工作
例外:
java.lang.nullpoInterException:尝试调用虚拟方法'int android.view.keyevent.getKeycode()'null对象引用的packagename.mainactivity $ 2.ONEDOTORACTION(MAINACTIVITION.JAVA:69)第69行号69)
您没有检查收到的KeyEvent
,但DOC阻止了您:
keyEvent:如果由Enter密钥触发,则是事件;否则,这是null。
因此,您需要检查是否不是null
来防止异常。
这是源