2014-12-08 2 views
0

이미지 갤러리를 단편으로 만들려고하는데, 작동하지 않습니다. 내가 에뮬레이터에서 흰색 화면을 보여주는 앱을 실행하지만 내 logcat에는 오류가 없습니다. 내가 참조 tutorial .this이 자습서를 사용하고 나의 코드 내가 뭘 잘못조각 모음의 이미지 갤러리가 작동하지 않습니다. (안드로이드)

public View onCreateView(LayoutInflater inflater, ViewGroup container, AttributeSet attrs, Bundle savedInstanceState) { 

    final View rootView = inflater.inflate(R.layout.imagegallery, container, false); 



    Gallery gallery = (Gallery) rootView.findViewById(R.id.gallery1); 
    gallery.setAdapter(new ImageAdapter(getActivity())); 
    gallery.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView <? > parent, View v, int position, long id) { 
      Toast.makeText(rootView.getContext(), "pic" + (position + 1) + " selected", 
       Toast.LENGTH_SHORT).show(); 
      // display the images selected 
      ImageView imageView = (ImageView) rootView.findViewById(R.id.image1); 
      imageView.setImageResource(imageIDs[position]); 
     } 
    }); 
    return rootView; 
} 

public class ImageAdapter extends BaseAdapter { 
    private Context context; 
    private int itemBackground; 
    public ImageAdapter(Activity activity) { 
      // sets a grey background; wraps around the images 
      TypedArray a = getActivity().obtainStyledAttributes(R.styleable.MyGallery); 
      itemBackground = a.getResourceId(R.styleable.MyGallery_android_galleryItemBackground, 0); 
      a.recycle(); 
     } 
     // returns the number of images 
    public int getCount() { 
      return imageIDs.length; 
     } 
     // returns the ID of an item 
    public Object getItem(int position) { 
      return position; 
     } 
     // returns the ID of an item 
    public long getItemId(int position) { 
      return position; 
     } 
     // returns an ImageView view 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView imageView = new ImageView(context); 
     imageView.setImageResource(imageIDs[position]); 
     imageView.setLayoutParams(new Gallery.LayoutParams(100, 100)); 
     imageView.setBackgroundResource(itemBackground); 
     return imageView; 

    } 


} 


} 

입니까?

답변

1

당신은 당신의 FragmentonCreateView(...)

return rootView; 

에서 return rootView;

super.onInflate(attrs, savedInstanceState); 

를 제거하고 또한 변경해야

gallery.setAdapter(new ImageAdapter(this)); 

+0

응답 해 주셔서 감사합니다.하지만 작동하지 않습니다. –

+0

@VibinRejiY 무엇이 문제입니까? –

+0

나는 그것의 작은 실수를 생각한다 그것의 빈 screen.i를 보여주는 것을 모른다. –

0

5,)은 (이

public class HomeFragment extends Fragment { 

public HomeFragment(){} 
private Gallery gallery; 
private ListView listview; 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.fragment_home, container, false); 
    gallery = (Gallery) rootView.findViewById(R.id.gallery1); 
    listview = (ListView) rootView.findViewById(R.id.listView1); 
    gallery.setAdapter(new GalleryViewAdapter(getActivity())); 
    String values[] ={"item1","item2","item1","item2"}; 
    ArrayList<String> listValue = new ArrayList<String>(); 
    for(int i=0;i<values.length;i++){ 
     listValue.add(values[i]); 
    } 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), 
      android.R.layout.simple_list_item_1, values); 
    listview.setAdapter(adapter); 
    Animation anim = AnimationUtils.loadAnimation(getActivity(), R.anim.fly_in_from_center1); 
    gallery.setAnimation(anim); 
    anim.start(); 

    gallery.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      //view.setBackgroundResource(R.drawable.list_item_bg_pressed); 
      Animation vanish =AnimationUtils.loadAnimation(getActivity(),R.anim.vanish); 
      view.startAnimation(vanish); 

      Log.i("pos :: ","pos :: "+position); 
      //Toast.makeText(gridView.getContext(), "pos :: "+position, Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    return rootView; 
    } 
} 

이 어댑터

public class GalleryViewAdapter extends BaseAdapter { 

private Context context; 
public GalleryViewAdapter(Context c) { 
    context = c; 
} 

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return 15; 
} 

@Override 
public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 

@Override 
public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View v; 

     if (convertView == null) { 
     v = LayoutInflater.from(context).inflate(R.layout.row,null); 
     v.setLayoutParams(new Gallery.LayoutParams(250,250)); 
     } 
     else { 
     v = convertView; 
     } 
     ImageView imageview = (ImageView)v.findViewById(R.id.row_img); 
     TextView txtview = (TextView)v.findViewById(R.id.row_title); 
     txtview.setText("Hello"+position); 
     imageview.setScaleType(ImageView.ScaleType.FIT_CENTER); 
     imageview.setPadding(6, 6, 6, 6); 
     return v; 
    } 

} 
0

getActivity 인 시도 pageadapter 내부 중이다.

GalleryAdapter pageAdapter = new GalleryAdapter(getActivity(), proName, proImage); 

ViewPager pager = (ViewPager)getView().findViewById(R.id.galery); 

pager.setAdapter(pageAdapter); 
관련 문제