Например.,
Welcome to Android World.
Теперь, когда я дважды нажимаю на пробел между "Welcome" и "to", строка "from" to "to" World должна появиться в следующей строке.
То есть
Welcome <\n>
to Android World.
Аналогичным образом, когда я дважды нажимаю на пробел между «to» и «Android», это должно быть,
Welcome <\n>
to <\n>
Android World.
В первый раз это работает, но в следующий раз оно прекращается.
Я не знаю, где я иду не так. Возможно, он не получает onTouchListener должным образом.
Нужна помощь.
linear_layout = (LinearLayout) findViewById(R.id.linearLayout);
mTextView = new TextView[10];
mTextView[i] = new TextView(this);
mTextView[i].setText("Hello Android Text View");
linear_layout.addView(mTextView[i]);
mTextView[i].setOnTouchListener(this);
mGestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener() {
@Override
public void onLongPress(MotionEvent e) {
Log.d(TAG, "Long Press event");
Toast.makeText(getBaseContext(), "Long Press", Toast.LENGTH_LONG).show();
}
@Override
public boolean onDoubleTap(MotionEvent e) {
Log.d(TAG, "Double Tap event");
Toast.makeText(getBaseContext(), "Double Tap", Toast.LENGTH_LONG).show();
Log.i("Tag", "------------------------------ " + e.getX() + " " + e.getY());
Layout layout = ((TextView) view).getLayout();
int x = (int)e.getX();
int y = (int)e.getY();
if (layout!=null){
line = layout.getLineForVertical(y);
characterOffset = layout.getOffsetForHorizontal(line, x);
Log.i("index", ""+characterOffset);
}
String text = mTextView[i].getText().toString();
char[] char_txt = text.toCharArray();
int ascii_val = (int)text.charAt(characterOffset);
String rem_txt = "";
//if(ascii_val == 32) {
int n=characterOffset;
while(n < char_txt.length){
rem_txt += char_txt[n];
n++;
}
//}
i++;
String before_tap_txt = text.subSequence(0, characterOffset).toString();
mTextView[i-1].setText(before_tap_txt);
mTextView[i] = new TextView(GestureDetecterExampleActivity.this);
mTextView[i].setText(rem_txt);
linear_layout.addView(mTextView[i]);
return true;
}
@Override
public boolean onDown(MotionEvent e) {
return true;
}
});
mGestureDetector.setIsLongpressEnabled(true);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
view = v;
return mGestureDetector.onTouchEvent(event);
}