【问题标题】:Get clicked TextView in ScrollView/LinearLayout?在 ScrollView/LinearLayout 中单击 TextView?
【发布时间】:2019-01-21 18:57:31
【问题描述】:

我的程序中有一个滚动视图,里面有一个线性布局。我将 TextView 动态添加到线性布局中,但我无法知道我最终会得到多少 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***)
    }
};

【问题讨论】:

  • 你好@Netanel,你能把代码分享给我们吗?
  • 检查this thread
  • 嗨@Zuhrain,我添加了一些代码。够了吗?
  • @TamirAbutbul 如果我执行“最终字符串”,我可以在单击时访问它吗?
  • 是的,你可以访问它,但你不能改变它。

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


【解决方案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()里面的代码以满足你的需要。

【讨论】:

    猜你喜欢
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多