我的活动中有一个多行的editText。我想要的是用户输入新行/下一行/输入的ecerytime,应该自动生成一个子弹。我该怎么办?以下是预期输出的示例:
• Item 1 (user presses enter / new line)
•
答案 0 :(得分:1)
您可以添加一个字符来执行此操作。
•= \u2022
●= \u25CF
您应该可以在编辑框中添加一个。
yourBox.setOnKeyListener(new View.OnKeyListener() {
@Override public boolean onKey (View v,int keyCode, KeyEvent event){
if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
String myString = yourBox.getText().toString();
yourBox.setText("\u25CF " + myString);
}
return false;
}
});
答案 1 :(得分:1)
我不确定的是你是否还希望第一行自动获得子弹。试试这个以获得新行中的子弹:
final EditText et = findViewById(R.id.edittext);
et.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View view, int i, KeyEvent event) {
// onKey is fired twice, we filter one out
if (event.getAction()!=KeyEvent.ACTION_UP) {
return false;
}
if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
String oldString = et.getText().toString();
String newString = oldString + "\u25CF";
et.setText(newString);
et.setSelection(et.getText().length());
}
return false;
}
});