TextView onclick事件无法正常工作

时间:2014-05-03 09:36:45

标签: android onclick textview

在我的Android代码中,我使用以下代码在3个textviews上实现了onclick事件。但点击它们没有任何反应。有什么问题?

 <TextView 
 android:id="@+id/tv1"
 android:layout_width="40dp"
 android:layout_height="40dp"
 android:background="@drawable/menucircle"
 android:layout_alignParentLeft="true"
 android:layout_centerVertical="true"
 android:onClick="selectit"
 android:textColor="#ffffff"
/>


public void selectit(View v)
{
    Log.d("tv0","ok");
    if(v.getId()==tv1.getId())
    {Log.d("tv1","ok");
        selectoption(1);
        Log.d("tv1","ok");
    }
    if(v.getId()==tv2.getId())
    {Log.d("tv2","ok");
        selectoption(2);
    }
    if(v.getId()==tv3.getId())
    {Log.d("tv3","ok");
        selectoption(3);
    }
}

4 个答案:

答案 0 :(得分:13)

将其添加到xml中

android:clickable="true"

答案 1 :(得分:1)

您可能需要在xml

中包含此代码
android:clickable="true"

或者通过代码

将Clicklistenner设置为TextView
TextView btn=(TextView) findViewById(R.id.tv1);
btn.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        selectit(v);
    }
});

它会自动使其可点击,因此不需要android:clickable="true"

答案 2 :(得分:1)

您可以使用以下属性在xml中设置单击处理程序:

android:clickable="true"

不要忘记clickable属性,如果没有它,则不会调用click处理程序。

main.xml中

<TextView 
 android:id="@+id/tv1"
 android:layout_width="40dp"
 android:layout_height="40dp"
 android:background="@drawable/menucircle"
 android:layout_alignParentLeft="true"
 android:layout_centerVertical="true"
 android:onClick="selectit"            
 android:clickable="true"
 android:textColor="#ffffff"
/>

我希望它能帮助你一切顺利

答案 3 :(得分:1)

尝试如下:

android:onClick="onClick"
android:clickable="true"

我的观点:

<TextView 
       android:id="@+id/click"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"               
       android:text="Click Me"
       android:textSize="55sp"
       android:onClick="onClick"                
       android:clickable="true"/>

主要活动:

public class MyActivity extends Activity {

      public void onClick(View v) {
        ...
      }  
   }