在ScrollView / LinearLayout中获得单击的TextView?

时间:2019-01-21 18:57:32

标签: java android android-linearlayout textview android-scrollview

我的程序中有一个滚动视图,其中包含一个线性布局。我将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 :(得分:1)

在类级别声明一个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()中自定义代码。