Android: Как преобразовать «просмотр» в «просмотр текста»? - PullRequest
3 голосов
/ 22 ноября 2011

У меня есть число TextView с, каждый из которых имеет один OnLongClickListener

В рамках события onLongClick я хочу определить, какой TextView вызвал событие.* Однако событие определяется как:

public boolean onLongClick(View view) 

Я пытался привести view к TextView, но это не сработало.

Как я могу получить на виджетевызвало событие OnLongClick?

Ответы [ 5 ]

12 голосов
/ 22 ноября 2011

View должно быть вашим TextView.

Попробуйте что-то вроде этого:

if( view instanceof TextView ) {
  TextView textView = (TextView) view;
  //Do your stuff
}

Чтобы убедиться, что приведенный выше оператор if действителен, вы можете сначала запустить его так:

if( view instanceof TextView ) {
  Log.e( "MyTag", "It's a TextView!" );
}
0 голосов
/ 22 ноября 2011

какая ошибка вы получаете? обычно это должно работать. Если вы установите yourTextView.setOnLongClickListener(this), а затем сработает public boolean onLongClick(View view), и вам не нужно его разыгрывать.

0 голосов
/ 22 ноября 2011

TextView уже a View, все виджеты расширяются от View, поэтому все, что вам нужно, это переключение на id ваших TextViews, например:*

public boolean onLongClick(View v) {
        switch(v.getId()) {
            case R.id.txt1: // your code for the textView which have the id R.id.txt1  ...;
                     break;
            case R.id.txt2: // your code for the textView which have the id R.id.txt2  ...; 
                    break;
                //... etc
        }
        return true;
    }
0 голосов
/ 22 ноября 2011
public boolean onLongClick(View v) {
        switch(v.getId()) {
            case R.id.first_text_view: // do things here; break;
                ...
        }
        return true;
    }
0 голосов
/ 22 ноября 2011

Используйте метод view.getId () для получения идентификатора кликаемого представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...