我試圖完成下面的事情選擇textViews並得到他們的價值觀
假設我有5-6 TextViews
與價值S N A K E
現在,我想按S
的TextView然後滑動我的手指在N
選擇它也然後移動到我的方式E.我想這樣做,以便我可以在我的字符串或字符序列等「SNAKE
」
如果有任何想法請分享我。我無法得到它在這裏如何使用onTouch
。 另外,我加入textViews
動態,所以我來動態地設置其ID也 問候
我試圖完成下面的事情選擇textViews並得到他們的價值觀
假設我有5-6 TextViews
與價值S N A K E
現在,我想按S
的TextView然後滑動我的手指在N
選擇它也然後移動到我的方式E.我想這樣做,以便我可以在我的字符串或字符序列等「SNAKE
」
如果有任何想法請分享我。我無法得到它在這裏如何使用onTouch
。 另外,我加入textViews
動態,所以我來動態地設置其ID也 問候
我從來沒有這樣做,但這裏有一個想法。
假設您的所有textview都處於某種佈局,您可以禁用textview的可聚焦性並在您的基礎容器上創建onTouch偵聽器。
開始跟蹤上的鼠標按下事件
@Override public boolean onTouch(View v, MotionEvent event) {
if(event.getAction == MotionEvent.ACTION_DOWN)
{
captureInput = true;
}
}
*在你的ACTION_MOVE事件,檢查當前的位置是一個TextView以上,如果是這樣,捕捉價值*
@Override public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
if(action == MotionEvent.ACTION_DOWN)
{
captureInput = true;
}
else if(action == MotionEvent.ACTION_MOVE
{
//get x/y of your finger
int X = (int)event.getX();
int Y = (int)event.getY();
//Somehow check if the x,y are overlapping with one of your textivews
// If so, add that textview's text to your list
// Below is pseudo code
/* for(TextView curTV: allTextViews)
{
if(isOverlapping(X,Y))
{
listOfSwipedCharacters.add(curTV.getText());
}
}
}
}
最後,當用戶釋放他們的手指時,停止跟蹤並且使用單詞列表做某事
@Override public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
if(action == MotionEvent.ACTION_DOWN)
{
captureInput = true;
}
else if(action == MotionEvent.ACTION_MOVE
{
//get x/y of your finger
int X = (int)event.getX();
int Y = (int)event.getY();
//Somehow check which textview the X,Y coords are overlapping
// Below is pseudo code
/* for(TextView curTV: allTextViews)
{
if(isOverlapping(X,Y))
{
listOfSwipedCharacters += (curTV.getText());
}
}*/
}
else if(action == MotionEvent.ACTION_UP)
{
captureInput = false;
//Do whatever you want with the string of information that you've captured
}
}
再一次,我不知道這是否會工作,它只是在做法猜測。我懷疑循環遍歷每個文本視圖以檢查重疊的性能會非常糟糕,所以可能比運行for循環更有效。
既然你知道你不能跳過字母時,你可以創建一個所有可能的滑動位置(周圍字母)的短名單,每當你添加一個新的字母。然後在您的鼠標事件中,檢查是否有任何這些字母被鼠標移動事件擊中。例如,在一個標準的單詞搜索遊戲中,一旦你選擇了一個字母,只有9個其他可能的位置供你刷卡(周圍的字母),所以你應該只檢查這9個位置是否在你捕獲鼠標移動事件。
編輯:我想你可以使用上面的解決方案,如果你將onTouch監聽器連接到每個和每個文本視圖。關於觸摸的相同前提將適用:向下=開始捕捉,移動=捕捉文本,向上=停止捕捉。這將使您無需識別哪些文本視圖正在被徘徊,因爲觸發onTouch事件的文本視圖將是用戶正在滑過的文本視圖。
use someting like textview.setOntouchListener() –