2017-08-17 11 views
0

画像付きのGridViewがあり、左右にスワイプできます。しかし、私がGridViewに戻り、画像3または4を選択すると、私はスライドするアクティビティで常に画像2に戻り、選択した画像ではありません。アクティビティに戻るときに正しい画像ビューを選択

コードを修正して正しい画像にスクロールできますか?

public class CustomSwip extends PagerAdapter { 

    private int[] imageResource = { R.drawable.pic_2, R.drawable.pic_3, 
      R.drawable.pic_4, R.drawable.pic_5, R.drawable.pic_6, R.drawable.pic_7, 
      R.drawable.pic_8, R.drawable.pic_9, R.drawable.pic_10, R.drawable.pic_11, 
      R.drawable.pic_12, R.drawable.pic_13, R.drawable.pic_14, R.drawable.pic_15,}; 

    private ImageView imageView; 
    private Context ctx; 
    private LayoutInflater layoutInflater; 
    private ImageAdapter adapter; 

    public CustomSwip(Context c) { 
     ctx = c; 
    } 

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

    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 
     layoutInflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View itemView = layoutInflater.inflate(R.layout.activity_custom_swip, container, false); 
     ImageView imageView = (ImageView) itemView.findViewById(R.id.swip_image_view); 
     TextView textView = (TextView) itemView.findViewById(R.id.imageCount); 
     imageView.setImageResource(imageResource[position]); 
     textView.setText("id" + position); 

     container.addView(itemView); 
     return itemView; 
    } 

    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
    } 

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

FullImageActivity.Class

public class FullImageActivity extends AppCompatActivity { 



    ViewPager viewPager; 
    CustomSwip customSwipe; 





    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_full_image); 


     Intent i = getIntent(); 
     int position = i.getExtras().getInt("id"); 
     ImageAdapter adapter = new ImageAdapter(this); 

     ImageView imageView = (ImageView) findViewById(R.id.imageView); 
     imageView.setImageResource(adapter.images[position]); 

     viewPager=(ViewPager)findViewById(R.id.viewPager); 
     customSwipe=new CustomSwip(this); 
     viewPager.setAdapter(customSwipe); 




    } 


} 

ImageAdapterクラス

public class ImageAdapter extends BaseAdapter { 

    private Context context; 

    public Integer[] images = new Integer[]{ 
      R.drawable.pic_2, 
      R.drawable.pic_3, R.drawable.pic_4, 
      R.drawable.pic_5, R.drawable.pic_6, 


    }; 

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


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

    @Override 
    public Object getItem(int position) { 
     return images[position]; 
    } 

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

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView imageView = new ImageView(context); 
     imageView.setImageResource(images[position]); 
     imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
     imageView.setLayoutParams(new GridView.LayoutParams(350, 250)); 
     return imageView; 


    } 


} 

MainActivityClass

public class MainActivity extends AppCompatActivity { 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 



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

     gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       Intent i = new Intent(getApplicationContext(), FullImageActivity.class); 
       i.putExtra("id", position); 
       startActivity(i); 

      } 
     }); 





    } 
} 
+0

は' Cheesebaron –

+0

私のポストを編集するためにありがとう! – santalu

+0

"Santalu私は自分の携帯電話の画面で私のタッチの指で画像を選ぶが、私は画面の例では、常に最初の画像をスライドさせて、私は選択した画像を選んでいないが、または右。 –

答えて

1

あなたはを使用することができます所望の位置からビューページャを開始する方法。 「私は戻ってGridViewコントロールに移動して、画像3または4を選択する際に、しかし」 `あなたは、これに関連するコードスニペットを共有することができ

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_full_image); 


    Intent i = getIntent(); 
    int position = i.getExtras().getInt("id"); 
    ImageAdapter adapter = new ImageAdapter(this); 

    ImageView imageView = (ImageView) findViewById(R.id.imageView); 
    imageView.setImageResource(adapter.images[position]); 

    viewPager=(ViewPager)findViewById(R.id.viewPager); 
    customSwipe=new CustomSwip(this); 
    viewPager.setAdapter(customSwipe); 
    //we are setting the target position here 
    viewPager.setCurrentItem(position); 

} 
+0

"Santaluはあなたの助けに感謝しています。私は毎日Javaコードの初心者です。私はこのコードを考えていましたが、私の心はImageviewでした。なぜならXMLのviewPagerを使いこなしてしまったからです。非常に!!! " –

+0

あなたを助けてうれしい。心配しないでください、またはここであなたの質問をすることを躊躇しないでください。私はあなたの未来のために幸運を祈っています... – santalu

関連する問題