2016-05-18 2 views
0

Im пытается установить интерактивное картографическое изображение, чтобы при щелчке по карте в списке фрагмент расширялся в моем recyclerview. пока я могу получить щелчок, чтобы зарегистрироваться и показать позицию, если я тост, но когда я пытаюсь раздуть новое представление в файле fragment_container, я продолжаю получать ошибки.Попытка установить onClick for Recyclerview

код, приведенный ниже, метания «Error: (49, 54) Ошибка: не-статический метод getFragmentManager() не может ссылаться из статического контекста»

может кто-то пожалуйста, покажите мне, как решить эту ошибку?

package com.packagename.adapters_holders; 

import android.app.Activity; 

import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentTransaction; 
import android.support.v7.widget.CardView; 
import android.support.v7.widget.RecyclerView; 
import android.view.View; 
import android.widget.ImageView; 
import android.widget.TextView; 

import com.packagename.R; 
import com.packagename.WhatIWantToDisplayFragment; 


/** 
* RecyclerView Holder 
*/ 
public abstract class MyPageHolder extends RecyclerView.ViewHolder{ 

    protected Activity activity; 
    protected MyPageAdapter adapter; 
    public TextView txtTitle, txtDescription; 
    public ImageView imgImage; 
    public View view; 


    public MyPageHolder(final View v, final Activity activity, MyPageAdapter adapter) { 
     super(v); 
     this.activity = activity; 
     this.adapter = adapter; 

     imgImage = (ImageView) v.findViewById(R.id.cardview_image); 
     txtTitle = (TextView) v.findViewById(R.id.cardview_title); 
     txtDescription = (TextView) v.findViewById(R.id.cardview_description); 
     view = (CardView) v.findViewById(R.id.card_view); 

     view = itemView; 

     view.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       //what to put here 

       FragmentManager fm = FragmentActivity.getFragmentManager(); 
       FragmentTransaction ft = fm.beginTransaction(); 
       ft.replace(R.id.fragment_container, new WhatIWantToDisplayFragment(), "fragment_screen"); 
       ft.commit(); 
       break; 




      } 
     }); 
    } 


    public void bind(ListItems dataModel, Activity activity, int position) { 
     ListItems m = (ListItems)dataModel; 
     imgImage.setImageResource(m.image); 
     txtTitle.setText(m.title); 
     txtDescription.setText(m.description); 
    } 


} 

ответ

0

Вы не можете создать FragmentManager экземпляр так
FragmentManager fm = FragmentActivity.getFragmentManager();,

вместо этого использовать экземпляр деятельности, чтобы создать.
FragmentManager fm = activity.getFragmentManager();

happyCoding;

Смежные вопросы