안녕하세요
제가 지금 만들어보고 싶은 것은 해시태그처럼 기능을 구현을 해보는 것입니다.
이미지버튼인 '#'을 누르면 내용에 #이 입력이 되어야 하는데 어떤 방법을 써야하는지 감을 잡기 어렵습니다.
처음 코드를 짤 때에는 EditText.setText(contents + "#"); 이런 식으로 코드를 작성했는데
이렇게 작성을 하면 #이 당연하게도 글 중간에는 입력이 되지 않았습니다.
구글링을 계속해보면서 TextWatcher를 사용하라는 말을 많이 보았는데 실은 그 부분에서도 감이 잡히지 않습니다.
현재 이런식으로 작성이 되어있고요
//해시태그
public void hashtag_write(View v) {
ImageButton tagbtn = (ImageButton) findViewById(R.id.hashtag_write);
tagbtn.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
String str = "#";
final EditText write = (EditText) findViewById(R.id.write);
String contents = write.getText().toString();
//int s = write.getSelectionStart();
//int e = write.getSelectionEnd();
//write.setText(contents + str);
write.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) {
int st_point = write.getSelectionStart();
int ed_point = write.getSelectionEnd();
}
@Override
public void afterTextChanged(Editable s) {
}
});
Editable etext = write.getText();
Selection.setSelection(etext, etext.length());
}
});
}
역시 TextWatcher을 사용하는 것이 맞는지 아님 제가 너무 복잡하게 생각하고 있는지 제가 놓치고 있는 것이 무엇인지 일깨워주시면 감사하겠습니다