onClickListener在卡布拉的tablayout中不起作用

问题描述:

我在一个在tablayout中的recyclerview中有一个卡式视图。我在适配器的cardview上放置了一个onClickListener,但它不起作用。当我点击一张牌时,我只想让EquationsActivity开始。在使用卡片监听器接口之前,我已经完成了这个工作。但这是行不通的,唯一的区别是,在这种情况下,我的recyclerview是在tablayout中。我不确定这是否会导致任何问题。onClickListener在卡布拉的tablayout中不起作用

感谢您的任何建议!

我recyclerViewAdapter:

public class recylcerAdapter extends RecyclerView.Adapter<recylcerAdapter.ViewHolder> { 
    private ListView listView; 
    private String title; 
    private Cursor cursor; 
    private Context context; 
    private TextView textView; 
    private ImageView imageView; 
    private int[] imageIds; 
    private String[] nameArray; 




    public static class ViewHolder extends RecyclerView.ViewHolder{ 
     //define the viewholder and store card views 
     //constructor 

     private TextView textView; 
     private ImageView imageView; 

     private CardView cardView; 

     public ViewHolder(CardView v){ 
      super(v); 
      cardView = v; 

     } 
    } 


    public recylcerAdapter(Context context, String title, Cursor cursor, int[]imageIds, String[]nameArray){ 
     this.cursor = cursor; 
     this.title = title; 
     this.context = context; 

     this.imageIds = imageIds; 
     this.nameArray = nameArray; 
    } 


    @Override 
    public recylcerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType){ 
     //create a new view 
     CardView cardView = (CardView) LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview_main, parent, false); 
     return new ViewHolder(cardView); 

    } 

    public void onBindViewHolder(ViewHolder holder, final int position){ 
     //set the values inside the given view 

     CardView cardView = holder.cardView; 
     ImageView imageView = (ImageView) cardView.findViewById(R.id.list_icon); 
     Drawable drawable = cardView.getResources().getDrawable(imageIds[position]); 
     imageView.setImageDrawable(drawable); 
     imageView.setContentDescription(nameArray[position]); 
     TextView textView = (TextView) cardView.findViewById(R.id.card_text); 
     textView.setText(nameArray[position]); 

     cardView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       Toast toast = Toast.makeText(context, "worked", Toast.LENGTH_SHORT); 
       toast.show(); 
        Intent intent = new Intent(context, EquationsActivity.class); 
context.startActivity(intent); 



      } 
     }); 



    } 

    @Override 
    public int getItemCount(){ 
     //return number of items in the data set 
     return nameArray.length; 
    } 
} 

我的回收站布局:

<android.support.v7.widget.RecyclerView 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:id="@+id/recycler" 
android:scrollbars="vertical" 
android:clickable="true" 


android:foreground="?android:attr/selectableItemBackground" 

> 

</android.support.v7.widget.RecyclerView> 

我的主要协调&标签布局:

<android.support.design.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

    <include 
     layout="@layout/tool_bar" 
     android:id="@+id/toolBar" 

     /> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabMode="fixed" 
     app:tabGravity="fill" 
     android:background="@color/colorPrimary" 

     /> 


</android.support.design.widget.AppBarLayout> 

<android.support.v4.view.ViewPager 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:orientation="vertical" 
android:id="@+id/pager" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
android:clickable="true" 
/> 

</android.support.design.widget.CoordinatorLayout> 
+1

请张贴您的xml布局。 – amitairos

+0

@amitairos好的,我做了 –

+1

你的卡片布局在哪里? @CodyCoogan – Smit

尝试从ViewPager去除android:clickable="true",并将其添加到您想要点击的卡片的xml。

+1

谢谢,这工作得很好 –