Получить щелкнул TextView в ScrollView / LinearLayout? - PullRequest
0 голосов
/ 21 января 2019

У меня в программе вид прокрутки с линейным расположением внутри. Я динамически добавляю TextView к linearlayout, и у меня нет никакого способа узнать, сколько TextView будет в итоге. Когда щелкает определенный TextView, мне нужно получить его текст. Есть идеи, как лучше всего это сделать?

Заранее спасибо.

Я пытался добавить слушателя в текстовое представление, но я не уверен, как получить текст. Я видел в некоторых сообщениях, что вы можете прослушивать LinearLayour / ScrollView, хотя я не уверен, что это лучший вариант.

Это происходит каждый раз, когда добавляется сообщение:

TextView messageText = new TextView(RecordedMessagesScreen.this);
messageText.setText(content);
messageText.setClickable(true);

messageText.setOnClickListener(RecordedMessagesScreen.this.textViewListener);
RecordedMessagesScreen.this.messagesLayout.addView(messageText);

это слушатель:

this.textViewListener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent data = new Intent();
        data.putExtra("message", ***NEED TO GET THE TEXT***)
    }
};

1 Ответ

0 голосов
/ 21 января 2019

На уровне класса объявите переменную String:

private String text = "";

и переменная View.OnClickListener:

private View.OnClickListener listener;

Инициализируйте слушателя в onCreate() вашей активности следующим образом:

listener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        TextView tv = (TextView) v;
        text = tv.getText().toString();
    }
};

и каждый раз, когда вы создаете новый TextView, установите слушателя:

textView.setOnClickListener(listener);

Таким образом, переменная text каждый раз, когда вы нажимаете TextView, будет получать текст TextView, по которому щелкнули.
Вы можете настроить код внутри onClick() в соответствии с вашими потребностями.

...