代码之家  ›  专栏  ›  技术社区  ›  Netanel

是否在ScrollView/LinearLayout中单击文本视图?

  •  -1
  • Netanel  · 技术社区  · 7 年前

    我的程序中有一个滚动视图,其中有一个线性布局。我动态地将textview添加到linearlayout中,我无法知道最终会有多少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 回复  |  直到 7 年前
        1
  •  1
  •   forpas    7 年前

    在类级别声明 String 变量:

    private String text = "";
    

    和A 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 每次单击 文本框 会被点击 文本框 的文字。
    您可以自定义内部代码 onClick() 你适合你的需要。