【问题标题】:OnClickListener not working on a TextView in canvasOnClickListener 不适用于画布中的 TextView
【发布时间】:2018-02-18 19:23:51
【问题描述】:

我以编程方式将 TextView 添加到画布对象,但 OnClickListener 不适用于 TextView。我查看了其他答案,并尝试使用 LogCat 进行调试,但无法找到问题。

编辑 1:我正在多次绘制 Canvas 和 TextView,即我有多个 TextView,我想在某些 X 和 Y 上显示它们,我使用 Canvas 绘制了这些,更新了代码。我认为进行编辑可能是多个画布相互干扰。

这是代码:

for(int i=0;i<texts.length;i++){

    LinearLayout layout = new LinearLayout(this);

    TextView textView = new TextView(this);

    textView.setVisibility(View.VISIBLE);
    textView.setText(texts[i]);

    layout.addView(textView);
    layout.measure(c.getWidth(), c.getHeight());
    layout.layout(0,0, c.getWidth(), c.getHeight());
    c.translate(x1[i], y1[i]);
    layout.draw(c);
    textView.setClickable(true);
    Log.e("DebugClicker","BeforeClickable");
    textView.setOnClickListener(
    new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.e("DebugClicker","Clicked");
            Intent sIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+text));


            sIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);


             try{
                    startActivity(sIntent);
                }
                catch (SecurityException e){
                    Log.e("Exception", e.toString());
                }
            }
        });
            Log.e("DebugClicker","AfterClickable");
        }
}

【问题讨论】:

  • 尝试设置layout的方向,即你的线性布局..
  • 这将如何解决问题?
  • 可能是因为它无法绘制文本视图..
  • textView 正在显示,但不可点击。另外,我尝试为布局添加方向(水平和垂直),但它没有工作:(
  • @user3667569 你找到解决办法了吗??

标签: android textview clickable


【解决方案1】:

尝试添加:

textView.setFocusableInTouchMode(true);
textView.setFocusable(true);

【讨论】:

  • 可能是你在文本视图上画了一些东西,而你不能为此单击它。如果您尝试“textView.setDuplicateParentStateEnabled(true);”。它可以解决问题
  • 更新了一些细节,如果你能看一下,将不胜感激。
  • 你以后用layout做什么?
猜你喜欢
  • 1970-01-01
  • 2016-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-04
  • 2016-08-27
  • 1970-01-01
相关资源
最近更新 更多