Android edittext settext во фрагменте
Всем Привет,
У меня есть простой фрагмент внутри у меня есть EditText. Я пытаюсь установить EditText setText onCreateView, onResume и onStart но я не мог заставить текст Показать. setHint работает просто отлично, в отличие от setText. есть идеи, в чем может быть причина?
Заранее спасибо!!
Что я уже пробовал:
XML:
EditText находится внутри ScrollView
<EditText android:id="@+id/output_value" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="number" android:maxLength="3" android:hint="@string/output_function_value_hint" android:layout_marginStart="20dp" android:layout_marginEnd="20dp" android:saveEnabled="false"/>
onCreateView:
private View rootView; private EditText outputEditText; public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { rootView = inflater.inflate(R.layout.fragment_io,container,false); outputEditText = rootView.findViewById(R.id.output_value); outputEditText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable s) { if(!TextUtils.isEmpty(s.toString())){ try{ if(Integer.valueOf(outputEditText.getText().toString()) > MAX_OUTPUT_VALUE || Integer.valueOf(outputEditText.getText().toString()) <MIN_OUTPUT_VALUE ){ Toast.makeText(getSmartControlActivity(), getString(R.string.output_function_value_hint),Toast.LENGTH_SHORT).show(); outputEditText.setText(""); } }catch(NumberFormatException ex){ ex.printStackTrace(); outputEditText.setText(""); } } } }); //.... return rootView; }
Попытка установить текст onResume или onStart безрезультатно
@Override public void onResume() { super.onResume(); outputEditText.setText("42"); } @Override public void onStart(){ super.onStart(); outputEditText.setText("42"); //,TextView.BufferType.EDITABLE }
David Crow
Если бы я рискнул предположить, я бы сказал, что звонки в setText("42")
в onResume()
и onStart()
запускаем afterTextChanged()
обработчик, таким образом стирая текст.
Почему бы вам не прокомментировать это addTextChangedListener()
обработчик, чтобы сузить проблему?
Samira Radwan
@David Crow, вы абсолютно правы, удалив addTextChangedListner() устраните эту проблему. мой вопрос заключается в том, что если я не могу использовать addTextChangedListner (), что следует сделать для обработки любых проверок EditText? или, может быть, есть способ установить текст, не вызывая его? я знаю, что не могу этого сделать onCreateView
David Crow
"...что нужно сделать, чтобы справиться с любыми проверками EditText?"
Видеть здесь.