2017-08-17 4 views
0

Ich habe GridView mit Bildern und ich kann nach links und rechts kein Problem wischen. Wenn ich jedoch zur GridView zurückwechsle und Bild 3 oder 4 auswähle, wird in der Aktivität, in der ich gleite, immer zu Bild 2 und nicht zu dem Bild zurückgekehrt, das ich ausgesucht habe.Wählen Sie die richtige Bildansicht bei der Rückkehr zu Aktivität

Wie kann ich meinen Code korrigieren, um zum richtigen Bild zu scrollen?

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 Klasse

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

Danke meinen Beitrag Cheesebaron –

+0

'zu bearbeiten„Allerdings, wenn ich auf die Gridview gehen Sie zurück und wählen Bild 3 oder 4“' Können Sie den Code-Schnipsel im Zusammenhang mit diesem teilen? – santalu

+0

"Santalu ich wähle das Bild mit meinem Touch Finger auf dem Bildschirm von meinem Handy, aber wenn ich das Bild 3 zum Beispiel auf dem Bildschirm rutsche immer das erste Bild und wählen Sie nicht das Bild, das ich wählen, aber die Folie gut funktionieren nach links oder richtig." –

Antwort

1

können SieverwendenMethode, um den Pager von der gewünschten Position aus zu starten.

@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 meine Hilfe zu schätzen, ich bin Anfänger in der Java-Sprache jeden Tag ich versuche, diese Codes zu lernen, ich dachte in diesem Code, aber in meinem Kopf war der Imageview, weil ich mit dem ViewPager in der XML jetzt arbeiten, danke sehr viel !!! " –

+0

Froh, Ihnen zu helfen. Mach dir keine Sorgen oder zögere nicht, deine Fragen hier zu stellen. Ich wünsche viel Glück für Ihre Zukunft ... – santalu

Verwandte Themen