以下代码用于获取文字更改功能的输入状态.....
mEditText.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
try {
session.typing();
} catch (OmegleException e) {
e.printStackTrace();
}
}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
}
});
答案 0 :(得分:1)
尝试类似这样的东西-guess就是这样的聊天应用程序 -
final Random ran = new Random();
mEditText.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
if(start %2 ==0 && ran.nextBoolean()){
try {
session.typing();
} catch (OmegleException e) {
e.printStackTrace();
}
}
});
修改强>
b4我做你的最后一个请求,你介意在新线程上运行session.typing,就像这样
new Thread(new Runnable() {
@Override
public void run() {
try {
session.typing();
} catch (OmegleException e) {
e.printStackTrace();
}
}
}).start();
修改2
第一个字母输入
mEditText.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
if(start ==1){
try {
session.typing();
} catch (OmegleException e) {
e.printStackTrace();
}
}
});
答案 1 :(得分:0)
It can be fixed by changing the EditText width to 0dp using weighted widths to
match/fill the parent.
我不确定为什么会发生这种情况,但我相信这是因为当EditText的宽度设置为包装内容时,它会调整/重绘自身,以便一切都适合。因此,通过使EditText具有固定的宽度,不再需要重绘。
“0dp”表示宽度是多少?它应该占用所有可用空间吗?
是的,它会的。 layout_weight标签将执行此操作。 <EditText
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="5"/>
对于你的问题,我有一个建议:
将您的状态设置为输入,直到用户不按键盘上的完成按钮。
editText.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(EditText v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
//do here your stuff f
return true;
}
return false;
} });