2017-12-19 8 views
0

私はちょっとした問題がありますが、それは簡単に解決できますが、苦労しています。 ImageAdapterクラスからGalleryクラスへのリソースを解析する必要があります。 ImageAdapter:別のクラスのGridViewでImageAdapterを解析するには?

package rs.srecnaplaneta.www.srecnaplaneta; 
import android.content.Context; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.GridView; 
import android.widget.ImageView; 

public class ImageAdapter extends BaseAdapter { 
    private Context mContext; 

    public ImageAdapter(Context c) { 
     mContext = c; 
    } 

    public int getCount() { 
     return mThumbIds.length; 
    } 

    public Object getItem(int position) { 
     return null; 
    } 

    public long getItemId(int position) { 
     return 0; 
    } 

    // create a new ImageView for each item referenced by the Adapter 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView imageView; 
     if (convertView == null) { // if it's not recycled, initialize some attributes 
      imageView = new ImageView(mContext); 
      imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); 
      imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
      imageView.setPadding(8, 8, 8, 8); 
     } else { 
      imageView = (ImageView) convertView; 
     } 

     imageView.setImageResource(mThumbIds[position]); 
     return imageView; 
    } 

    // references to our images 
    private Integer[] mThumbIds = { 
      R.drawable.slika21, 
      R.drawable.slika22, 
      R.drawable.slika23, 
      R.drawable.slika24, 
      R.drawable.slika25, 
      R.drawable.slika26, 
      R.drawable.slika27, 
      R.drawable.slika28, 
      R.drawable.slika29 
    }; 
} 

ギャラリー:

package rs.srecnaplaneta.www.srecnaplaneta; 

import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.GridView; 

public class klasaGalerija extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.tab3galerija, container, false); 
    } 

    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     GridView gridView = getView().findViewById(R.id.gridview); 
     gridView.setAdapter(new ImageAdapter(this)); 

     gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
      } 
     }); 
    } 

} 

ので、問題は、そのギャラリークラスで、コードの行で:

gridView.setAdapter(新しいImageAdapter(本)) ;

"this"は機能しません。 Android Studioの自動ソリューションは、メソッド "ImageAdapter"の1番目のパラメータを "Context"から "klasaGalerija"に変更することになっていましたが、私はそれをしてはいけません。それは仕事のために私が想定している "文脈"のままでなければならないが、私はそれを指摘することはできない。

誰でも助けることができれば、本当にありがとう。

答えて

0

フラグメントであるため、これの代わりにgetContext()を使用する必要があります。

関連する問題