TextView的onClick()不工作

这里是我的main.xml的代码

<merge xmlns:android="http://schemas.android.com/apk/res/android"> <RelativeLayout android:id="@id/container" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <include layout="@layout/tabs" /> <ScrollView android:fillViewport="true" android:scrollbars="@null" android:layout_height="fill_parent" android:layout_width="fill_parent"> <LinearLayout android:paddingTop="10dp" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <!-- first text_view --> <TextView android:background="@color/grey" android:textColor="@color/white" android:text="@string/category" android:id="@+id/category1" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_marginTop="65dp" android:textSize="17dp" android:typeface="serif"/> <!-- first horizontal_scrollview --> <HorizontalScrollView android:scrollbars="@null" android:id="@+id/horizontalScrollView1" android:layout_width="wrap_content" android:layout_height="wrap_content"> <LinearLayout android:id="@+id/linearLayout1" android:orientation="horizontal" android:visibility="visible" android:layout_height="wrap_content" android:layout_width="wrap_content"> <!-- image_view should be here --> </LinearLayout> </HorizontalScrollView> </LinearLayout> </ScrollView> </RelativeLayout> </merge> 

这里是我的代码tabs.xml

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:background="#333333"> <TextView android:textColor="@color/gradient_green" android:id="@+id/viewall" android:layout_width="85dp" android:layout_height="25dp" android:layout_marginLeft="10dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:textSize="17dp" android:textStyle="bold" android:text="@string/view_all" android:onClick="onClick" android:focusable="false" android:clickable="true" /> <TextView android:textColor="@color/white" android:id="@+id/pic" android:layout_width="45dp" android:layout_height="25dp" android:layout_alignParentTop="true" android:layout_toRightOf="@+id/viewall" android:textSize="17dp" android:textStyle="bold" android:text="@string/pic" android:onClick="onClick" android:focusable="false" android:clickable="true" /> </RelativeLayout> 

这里是Main.java中的代码:

  public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView all = (TextView) this.findViewById(R.id.viewall); TextView pic = (TextView) this.findViewById(R.id.pic); all.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { TextView all = (TextView) findViewById(R.id.viewall); TextView pic = (TextView) findViewById(R.id.pic); Toast.makeText(Main.this, "VIEW ALL", Toast.LENGTH_SHORT).show(); all.setTextColor(getResources().getColorStateList(R.color.gradient_green)); pic.setTextColor(getResources().getColorStateList(R.color.white)); } }); pdf.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { TextView all = (TextView) findViewById(R.id.viewall); TextView pic = (TextView) findViewById(R.id.pic); Toast.makeText(Main.this, "VIEW ALL", Toast.LENGTH_SHORT).show(); all.setTextColor(getResources().getColorStateList(R.color.white)); pic.setTextColor(getResources().getColorStateList(R.color.gradient_green)); } }); } 

所以,如果我设置setContentView()Main.class或Main.java作为setContentView(R.layout.tabs)而不是setContentView(R.layout.main),onClick()的作品,我应该做什么或什么是我的代码错误,阻止onClick()不工作?

Related of "TextView的onClick()不工作"

使用这些

  all = (TextView) this.findViewById(R.id.viewall); pdf = (TextView) this.findViewById(R.id.pic); 

在创build,然后设置

all.setOnclickListener(this)也在oncreate()方法中。当onClicklistener实现的时候会显示错误。 它会像魅力一样工作。

编辑

 TextView btn=(TextView) findViewById(R.id.accInfo); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //DO you work here } }); 

设置Clicklistenner到TextView将自动使其可点击,所以不需要

 android:clickable="true" 

有一个简单的方法,把这个在XML文本视图:

机器人:可点击=“真”

<TextView>添加android:clickable="true"

在你的onCreate方法中,你需要:

  1. 为您的TextViews创buildvariables
  2. 为他们分配onClickListener

而且你的类也需要实现OnClickListener。

 public class SqliteTestsActivity extends Activity implements OnClickListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView all = (TextView) R.findViewById(R.id.viewall); all.setOnClickListener(this); } public void onClick(View v) { // Fill in this with your switch statement } } 

请进行如下更改:

  <include android:id = "@+id/lyttab" layout="@layout/tabs" /> 

在你的Java类中

  public void onClick(View v){ View view = findViewById(R.id.lyttab); all = (TextView) view.findViewById(R.id.viewall); pif = (TextView) view.findViewById(R.id.pic); switch (v){ case all : Toast.makeText(Main.this, "VIEW ALL", Toast.LENGTH_SHORT).show(); all.setTextColor(getResources().getColorStateList(R.color.gradient_green)); pic.setTextColor(getResources().getColorStateList(R.color.white)); break; case pic: Toast.makeText(Main.this, "PDF", Toast.LENGTH_SHORT).show(); all.setTextColor(getResources().getColorStateList(R.color.white)); pic.setTextColor(getResources().getColorStateList(R.color.gradient_green)); break; } } 

我认为这会帮助你