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 () не работать?

Solutions Collecting From Web of "TextView onClick () не работает"

Используйте эти

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

Внутри создать, а затем установить

All.setOnclickListener (this) в методе oncreate () too.Implement 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:

андроид: кликабельны = «истина»

Add android:clickable="true" в <TextView>

В методе onCreate вам необходимо:

  1. Создание переменных для вашего TextViews
  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; } } 

Я думаю, это поможет вам