- После объявления и создания
textWatcher
объекта, я хотел бы, чтобы отключить кнопку отправки и установите его в серый цвет, еслиchatText
(редактирование текста) пусто Я думаю, что это проблема рейтинга. Пожалуйста помоги.создание активности чата в андроида
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_chat); list = (ListView)findViewById(R.id.listView); list.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); chatText = (EditText)findViewById(R.id.editText); //chatText.setOnKeyListener(this); me = true; send = (Button)findViewById(R.id.button); change = (Button)findViewById(R.id.button2); list.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); adp = new TheAdapter(getApplicationContext(),R.layout.chat); list.setAdapter(adp); chatText.addTextChangedListener(textWatcher); checkFieldsForEmptyValues(); send.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { envoyer(); } }); change.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { me = !me; if (!me) { change.setText(R.string.sender2); } else { change.setText(R.string.sender); } } }); } public void envoyer(){ adp.add(new messages(me, chatText.getText().toString())); chatText.setText(""); } private void checkFieldsForEmptyValues(){ String s1 = chatText.getText().toString(); if (s1.length() < 0) { send.setEnabled(false); } else { send.setEnabled(true); send.setBackgroundColor(Color.BLUE); //send.setBackgroundColor((getResources().getColor(R.color.blue))); } }
-1
A
ответ
0
В onTextChanged
где вы бы проверить, если текстовое поле пустым:
chatText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.length() > 0) { //enable}
else if (s.length() == 0 { //disable }
В своем коде, у вас есть if (s1.length() < 0)
, которые я не думаю, что когда-нибудь будет истинно, потому что размер текста никогда не будет меньше 0.
0
// Disable on init
send.setEnabled(false);
// add text changer
chatText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// Enable when input is != null and not empty. You can check string lenght too
send.setEnabled(s != null && !s.toString().isEmpty());
}
@Override
public void afterTextChanged(Editable s) {
}
});
отключить кнопку до и добавить tex twatch. Вы также можете проверить, не является ли значение edittext пустым или проверить длину строки.
Я надеюсь, что это вам поможет
+0
Это очень спасибо работе :) – Constantine
Отформатируйте свой код правильно. И укажите свой вопрос – Ilya