2014-03-01 2 views
0

У меня есть несколько изображений, которые я показываю в gridview. что я хочу, когда я нажимаю это изображение, оно должно отображаться в полноэкранном режиме. Я также поставил viewpager на скользящую функциональность. проблема, с которой я сталкиваюсь, - это когда я нажимаю на изображение, на котором отображается первое изображение (а не одно).Невозможно отобразить отобранное изображение

он является моей основной деятельностью

public class Ppdtsample extends Activity { 
GridView grid; 

static int[] imageId = { R.drawable.ppdt1, R.drawable.ppdt2, 
     R.drawable.ppdt3, R.drawable.ppdt4, R.drawable.ppdt5, 
     R.drawable.ppdt6, R.drawable.ppdt7, }; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.ppdtsamples); 

     ImageAdapter adapter = new ImageAdapter(Ppdtsample.this, imageId); 
     grid=(GridView)findViewById(R.id.grid_view); 
       grid.setAdapter(adapter); 

       grid.setOnItemClickListener(new AdapterView.OnItemClickListener() { 


        @Override 
        public void onItemClick(AdapterView<?> parent, View view, 
          int position, long id) { 
         // TODO Auto-generated method stub 
         Intent i = new Intent(getApplicationContext(), FullImageActivity.class); 
          // passing array index 
          i.putExtra("id", position); 

          startActivity(i); 
        } 
       }); 
    } 

} 

это моя деятельность будет отображаться в полноэкранном режиме с выдвижной функциональностью:

public class FullImageActivity extends Activity { 






@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.full_image); 

    // get intent data 
    Intent i = getIntent(); 

    // Selected image id 
    int position = i.getExtras().getInt("id"); 

    // passing array index 

    ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager); 


    viewPager.setBackgroundResource(0); 





    SlideImage adapter = new SlideImage(this); 
    viewPager.setAdapter(adapter); 


} 
} 

и это мой класс для ViewPager

public class SlideImage extends PagerAdapter { 
Context context; 


private int[] GalImages = { R.drawable.ppdt1, R.drawable.ppdt2, 
     R.drawable.ppdt3, R.drawable.ppdt4, R.drawable.ppdt5, 
     R.drawable.ppdt6, R.drawable.ppdt7, }; 


SlideImage(Context context) { 
    this.context = context; 
} 

@Override 
public int getCount() { 
    return GalImages.length; 
} 

@Override 
public boolean isViewFromObject(View view, Object object) { 
    return view == ((ImageView) object); 
} 

@Override 
public Object instantiateItem(ViewGroup container, int position) { 
    ImageView imageView = new ImageView(context); 
    int padding = context.getResources().getDimensionPixelSize(R.dimen.activity_vertical_margin); 
    imageView.setPadding(padding, padding, padding, padding); 
    imageView.setScaleType(ImageView.ScaleType.FIT_XY); 


    imageView.setImageResource(GalImages[position]); 
    ((ViewPager) container).addView(imageView, 0); 
    return imageView; 
} 

@Override 
public void destroyItem(ViewGroup container, int position, Object object) { 
    ((ViewPager) container).removeView((ImageView) object); 
} 
} 

он отображает первое изображение, а не изображение, которое я нажимаю, потому что я не могу передать 'p osition 'щелкнутого изображения. он занимает позицию по этому методу в SlideImage.class

Object instantiateItem(ViewGroup container, int position) 

, который является первой позицией. я хочу передать позицию из fullImageActivity.class в положение в этой линии

imageView.setImageResource(GalImages[position]); 

, который находится на SlideshowActivity.

Это может показаться сложным, но я просто хочу передать значение позиции из FullImageActivity.class в SlideImage.class. Пожалуйста, помогите мне

ответ

0

Ваш Ppdtsample выглядит strange.Here Я попытался изменить свой Ppdtsample класс, который работал для меня:

public class Ppdtsample extends Activity { 
GridView grid; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.grid_layout); 

    grid = (GridView) findViewById(R.id.grid_view); 

    // Instance of SlideImage Class 
    gridView.setAdapter(new SlideImage(this)); 

    gridView.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View v, 
       int position, long id) { 

      Intent i = new Intent(getApplicationContext(),FullImageActivity.class); 

      i.putExtra("id", position); 
      startActivity(i); 
     } 
    }); 
    } 
} 

И причина вы не можете передать идентификатор потому, что вы установили неправильный адаптер в Ppdtsample. Это должно быть SlideImage у вас код, а не ImageAdapter.

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