0

如何从CardView中的onClick打开片段? 我在Cardview中有一个列表,当我点击时想显示另一个片段。 这是adapter.class从cardView打开片段

public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ 
     public TextView fecha_celula; 
     public TextView nombre_celula; 

     public ViewHolder(View itemView) { 
      super(itemView); 
      fecha_celula = (TextView) itemView.findViewById(R.id.fecha_celula); 
      nombre_celula = (TextView) itemView.findViewById(R.id.nombre_celula); 

      itemView.setOnClickListener(this); 

     } 

     @Override 
     public void onClick(View v) { 
      Fragment nameAdd = new name_add(); 
      getSupportFragmentManager().beginTransaction().replace(R.id.container, predicaAdd).commit(); 
     } 
    } 

,这是layout.xml

<?xml version="1.0" encoding="utf-8"?> 

<android.support.v7.widget.CardView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:clickable="true" 
    android:layout_margin="10dp" 
    android:id="@+id/card_view" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    card_view:cardCornerRadius="2dp"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:duplicateParentState="true"> 

     <ImageView 
      android:id="@+id/avatar_celula" 
      android:src="@drawable/ic_action_celula" 
      android:scaleType="centerCrop" 
      android:layout_marginRight="10dp" 
      android:layout_width="150dp" 
      android:layout_height="150dp" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:text="Large Text" 
      android:id="@+id/fecha_celula" 
      android:layout_alignParentTop="true" 
      android:layout_toEndOf="@+id/avatar_celula" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="Small Text" 
      android:id="@+id/nombre_celula" 
      android:layout_below="@+id/fecha_celula" 
      android:layout_toEndOf="@+id/avatar_celula" /> 


    </RelativeLayout> 

我解决问题的蒙山的onClick,我现在的问题是,我不能打开另一个片段。 我如何在myActivity中调用我的方法?

回答

1

OnClickListener实际上并未在任何地方使用,您必须将其连接到视图,例如,您的itemView在构造函数中。

itemView.setOnClickListener(this); 

onClick()方法就可以使用getPosition()来获取点击的元素的索引。

+0

对不起,这里没有getPosition()方法。是否有任何新的信息可以传递给我? – wasimsandhu 2015-06-09 23:54:29

+0

RecyclerView.ViewHolder确实有getPosition()。虽然它似乎已被弃用,但应该仍然可用: https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder.html#getPosition() – mus65 2015-06-11 16:05:24