Java 在android中创建聊天活动 声明并创建textWatcher对象后,如果chatText(编辑文本)为空,我想禁用发送按钮并将其设置为灰色
我认为这是一个排名问题。请帮忙Java 在android中创建聊天活动 声明并创建textWatcher对象后,如果chatText(编辑文本)为空,我想禁用发送按钮并将其设置为灰色,java,android,chat,onkeylistener,Java,Android,Chat,Onkeylistener,我认为这是一个排名问题。请帮忙 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_chat); list = (ListView)findViewById(R.id.listView); list.setTranscriptMode(AbsListVi
@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)));
}
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u chat);
list=(ListView)findViewById(R.id.ListView);
list.setTranscriptMode(AbsListView.TRANSCRIPT\u MODE\u ALWAYS\u SCROLL);
chatText=(EditText)findViewById(R.id.EditText);
//chatText.setOnKeyListener(这个);
我是真的;
send=(按钮)findviewbyd(R.id.Button);
更改=(按钮)findViewById(R.id.button2);
list.setTranscriptMode(AbsListView.TRANSCRIPT\u MODE\u ALWAYS\u SCROLL);
adp=新的TheAdapter(getApplicationContext(),R.layout.chat);
列表.设置适配器(adp);
addTextChangedListener(textWatcher);
checkFieldsForEmptyValues();
send.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
特使();
}
});
change.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
我=!我;
如果(!我){
change.setText(R.string.sender2);
}否则{
change.setText(R.string.sender);
}
}
});
}
公使(){
adp.add(新消息(me,chatText.getText().toString());
chatText.setText(“”);
}
私有void checkFieldsForEmptyValues(){
字符串s1=chatText.getText().toString();
if(s1.length()<0){
send.setEnabled(false);
}否则{
send.setEnabled(true);
send.setBackgroundColor(Color.BLUE);
//send.setBackgroundColor((getResources().getColor(R.color.blue));
}
}
在
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
// 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) {
}
});
禁用之前的按钮并添加textwatch。您还可以检查edittext值是否为空或验证字符串长度
我希望它能帮助您正确格式化代码。并详细说明你的问题