selection 하는 방법에 대해서 궁금합니다.

TextView나 EditText에서 long click을 통해서 단어를 선택하여 주고 싶습니다.

예전에는 갤탭에서 테스팅 할때는 야매로 한 방법이 통했으나, 다시 갤럭시s 에 맞추는 과정에서 제대로 작동이 안되는것을 발견했네요


getSelectionEnd나 getSelectionStart 둘다 -1 을 return 시켜주는 걸로 봐서 단어 자체에 select 가 안되어있는거 같습니다.


이러한 방법을 해결할 수는 없나요?


안드로이드펍에서 onTouch를 이용한 방법을 보았으나, 그 방법을 사용하였을 경우에는 스크롤이 안되는 어려움이 있어서 현재 다시 공부를 하고 있습니다.


contentView.setOnLongClickListener(new OnLongClickListener() {

public boolean onLongClick(View v) {

mMediaPlayer.pause();

AlertDialog.Builder dial = new AlertDialog.Builder(longOperationContext);

dial.setTitle("사전 검색");

         

final CharSequence[] items ={"사전 검색"};

    

dial.setItems(items, new OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

String m = contentView.getText().toString().substring(0, contentView.getSelectionEnd());

String[] temp = m.split(" ");

final FindText findCs = new FindText(temp[temp.length-1], longOperationContext);

final String mean = findCs.Find().replace('>', '\n');

//mean = mean.replace('>', '\n');

final AlertDialog ad = new AlertDialog.Builder(longOperationContext).create();

ad.setTitle("단어");

//ad.setMessage(mean.substring(0, mean.indexOf('>')) + "\n" + mean.substring(mean.indexOf('>')+1, mean.length()-1));

ad.setMessage(mean);


다음 소스는 예전에 야매로 구현할 적의 소스 입니다. TextView 에다가 이벤트를 등록하여서 작성을 했었습니다.