相关疑难解决方法(0)

停止EditText在Activity启动时获得焦点

Activity在Android中有两个元素:

  1. EditText
  2. ListView

当我Activity开始时,EditText立即有输入焦点(闪烁光标).我不希望任何控件在启动时具有输入焦点.我试过了:

EditText.setSelected(false);
EditText.setFocusable(false);
Run Code Online (Sandbox Code Playgroud)

没运气.如何说服开始EditText时不选择自己Activity

android listview focus android-edittext

2770
推荐指数
36
解决办法
71万
查看次数

将焦点设置在EditText上

我有一个EditText-Field并为它设置一个OnFocusChangeListener.当它失去焦点时,会调用一个方法,该方法使用数据库中的一个方法检查EditText的值.如果方法的返回值为true,则显示toast,焦点应再次返回EditText.焦点应始终返回EditText并且键盘应该显示,直到方法的返回值为false.

编辑:我想,我还没有完全清楚我的真正问题:屏幕上没有其他项目应该能够编辑,直到EditText的值被编辑为一个值,这使得方法"checkLiganame(liganame) "回归虚假.只有EditText-Field应该是可编辑的.

这是我的代码(这对我不起作用):

final EditText Liganame = (EditText) findViewById(R.id.liganame);

    Liganame.setOnFocusChangeListener(new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (!hasFocus) {

                String liganame = Liganame.getText().toString();


                if (checkLiganame(liganame)) {
                    Toast toast = Toast.makeText(CreateTableActivity.this,
                            "Dieser Liganame ist bereits vergeben",
                            Toast.LENGTH_SHORT);
                    toast.show();
                    Liganame.requestFocus();
                }
            }
Run Code Online (Sandbox Code Playgroud)

和方法:

public boolean checkLiganame(String liganame) {
    boolean found = false;

    DatabaseHelper databaseHelper = new DatabaseHelper(this);
    SQLiteDatabase db = databaseHelper.getReadableDatabase();

    Cursor cursor = db.query("liga", new String[] { "liganame" },
            "liganame = '" + liganame + "'", …
Run Code Online (Sandbox Code Playgroud)

android focus android-edittext

161
推荐指数
9
解决办法
34万
查看次数

如何从单个editText中删除焦点

在我的应用程序中,我有一个单独的EditText,一些TextViews按钮和一个微调器.我相信,我的EditText会获得焦点,因为它是此活动中唯一可聚焦的视图.我的EditText节目带有橙色边框和光标在场上.

现在我想从这个字段中删除焦点(我不希望光标和边框显示).有没有办法做到这一点?

通过做button.seFocusableInTouchMode()和我能够专注于按钮button.requestFocus().但这突出了按钮,显然不是我想要的.

android

54
推荐指数
5
解决办法
15万
查看次数

用户完成编辑后如何从EditText中删除焦点?

我的布局上有一个EditText.在用户输入一些文本并点击"完成"键后,我想从中删除闪烁的光标.我已经搜索了StackOverflow并找到了3个对我不起作用的答案.闪烁的光标仍然存在.

private class MyOnKeyListener implements OnKeyListener {
  public boolean onKey(View v, int keyCode, KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN
    && keyCode == KeyEvent.KEYCODE_ENTER) {
      // FAIL 0
      MyActivity.this.findViewById(R.id.someOtherView).requestFocus();

      // FAIL 1
      InputMethodManager imm = (InputMethodManager)getSystemService(
        Context.INPUT_METHOD_SERVICE
      );
      imm.hideSoftInputFromWindow(v.getWindowToken(), 0);

      // FAIL 2
      MyActivity.this.getWindow().setSoftInputMode(
        WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN
      );

      return true;
    } else {
      return false;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

android android-edittext

25
推荐指数
4
解决办法
3万
查看次数

在Fragment中实现onKeyPreIme(int keyCode,KeyEvent事件)

我想不出如何实现onKeyPreIme(int keyCode, KeyEvent event)Fragment.

@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && 
        event.getAction() == KeyEvent.ACTION_UP) {
            // do your stuff
            return false;
    }
    return super.dispatchKeyEvent(event);
}
Run Code Online (Sandbox Code Playgroud)

我尝试了很多,但没有任何作用.另外,我在Google或Stack Overflow上找不到任何内容.我想在按下后退键并且软键盘启动时执行操作.设置onKeyListener我的EditTexts不起作用,因为KeyEvent.KEYCODE_BACK当软键盘启动时不会调用.我感谢任何帮助和源代码.

android fragment android-softkeyboard

13
推荐指数
2
解决办法
2万
查看次数

OnItemClickListener无法正常工作,但OnItemLongClickListener正在使用GridView

我在gridview上遇到clickListener问题.LongClickListener可以正常工作.但我似乎无法从点击监听器获得任何响应.

我的代码如下.

我很困惑为什么长按工作但不是正常的点击,

任何指针将不胜感激

谢谢

final GridView gridView = (GridView) findViewById(R.id.grid_view);
gridView.setNumColumns(numOfColumns);
gridView.getLayoutParams().width = (CELL_WIDTH * numOfColumns);
gridView.getLayoutParams().height = (CELL_WIDTH * numOfRows);

....

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
      public void onItemClick(AdapterView<?> parent, View v,
                                int position, long id) {
            Log.d("ABCD", "Position Single Click is " + position);
            // Ideally in here I want to put to open a soft keyboard for the user to enter a value
            // InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
            // imm.showSoftInput(gridView, InputMethodManager.SHOW_IMPLICIT);
        }
    });

 gridView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
      @Override
      public …
Run Code Online (Sandbox Code Playgroud)

android gridview onitemclicklistener

12
推荐指数
1
解决办法
2009
查看次数

Android中的美丽描边文字

我知道如何使用自定义视图(EditText或TextView)来描边文字但我无法实现像这样的美丽的东西,这是使用Photoshop完成的.是的,它也有外影.Photoshop中的描边文字

到目前为止我所做的是调整笔画宽度和笔画连接样式.但是,如果我增加笔划宽度,则笔划会发生整个文本.据我所搜索,有一个名为MagicTextView的库,但它也无法提供上述结果.

更新:我根据@pskink的建议调整了一些内容.它现在有效.但是我不能再拖了.如果我拖动EditText,会出现一些像这样的奇怪线条. 文本视图上方的奇怪线条

这是代码:

@Override public void onDraw(Canvas canvas) {
  final int x = this.getLeft();
  final int y = this.getBottom();

  mText = this.getText().toString();

  p.setStrokeWidth(30);
  p.setStyle(Style.STROKE);
  p.setStrokeJoin(Join.ROUND);
  p.setColor(0xffffffff);

  canvas.drawText(mText, x, y, p);

  p.setStyle(Style.FILL);
  p.setColor(0xff000000);

  canvas.drawText(mText, x, y, p);
}
Run Code Online (Sandbox Code Playgroud)

android textview custom-view android-edittext textstyle

8
推荐指数
2
解决办法
1757
查看次数