Android EditText requestFocus - PullRequest
0 голосов
/ 30 мая 2020

Я хочу создавать элементы (переключатели) динамически. Итак, я создаю линейный макет с горизонтальной ориентацией и pu sh radioButton и editText к нему, и мне нужно сосредоточить внимание на этом EditText. Я пытаюсь использовать метод requestFocus (), но в моем случае он не работает. Я что-то не так делаю?

btnToDo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                LinearLayout llNew= new LinearLayout(NewNote.this);
                llNew.setOrientation(LinearLayout.HORIZONTAL);
                RadioButton rbNew= new RadioButton(NewNote.this);
                rbNew.setPadding(10,0,10,0);

                //set radio button color:
                if(Build.VERSION.SDK_INT>=21)
                {
                    ColorStateList colorStateList = new ColorStateList(
                            new int[][]{
                                    new int[]{-android.R.attr.state_enabled}, //disabled
                                    new int[]{android.R.attr.state_enabled} //enabled
                            },
                            new int[] {
                                    Color.BLACK //disabled
                                    ,Color.BLACK //enabled
                            }
                    );
                    rbNew.setButtonTintList(colorStateList);//set the color tint list
                    rbNew.invalidate(); //could not be necessary
                }

                final EditText edNew = new EditText(NewNote.this);
                edNew.setTypeface(typefaceDunkin);
                edNew.setTextSize(25);
                edNew.setText("Some text");
                edNew.setBackgroundColor(Color.WHITE);

                edNew.requestFocus(); //HERE

                //cross text after click on radio button
                rbNew.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        edNew.setPaintFlags(edNew.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
                    }
                });

                llNew.addView(rbNew);
                llNew.addView(edNew);
                content.addView(llNew);
                scrollViewDown();
            }
        });```

1 Ответ

0 голосов
/ 30 мая 2020

добавить эти строки после запроса вызоваFocus:

  edNew.requestFocus();
  InputMethodManager im= (InputMethodManager) 
                        getSystemService(Context.INPUT_METHOD_SERVICE);
  im.showSoftInput(edNew, InputMethodManager.SHOW_IMPLICIT);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...