2013-02-16 19 views
6

İlk logcat logcat'ım, bu yöntemi tekrarladıktan sonra pozisyon 1'i alır ve pozisyon 1'i alır, bu yöntemi tekrar kullanmam gerekmez.Nasıl Yapılır? Nesnenin Tekrarı Yok PagerAdapter içinde momentumateItem()

public Object instantiateItem(ViewGroup container, int position) { 

    Context context = MainActivity.this; 

Log.d("position","position" +position); 
    ImageView imageView = new ImageView(context); 

    int padding = context.getResources().getDimensionPixelSize(
     R.dimen.padding_medium); 
    imageView.setPadding(padding, padding, padding, padding); 
    imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
    imageView.setImageResource(mImages[position]); 

    ((ViewPager) container).addView(imageView, 0); 

    return imageView; 

} 

görüntü slayt bu kodu başarıyla çalışır ancak logcat.please ilk resmin slayt ve pozisyon son yanlış baskı bana yardım et. Teşekkürler.

Düzenleme:

public class MainActivity extends Activity { 

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


    viewPager = (ViewPager) findViewById(R.id.view_pager); 
    ImagePagerAdapter adapter = new ImagePagerAdapter(); 
    adapter.notifyDataSetChanged(); 
    viewPager.setAdapter(adapter); 

    } 

    private class ImagePagerAdapter extends PagerAdapter { 

    private int[] mImages = new int[] { 
     R.drawable.chiang_mai, 
     R.drawable.himeji, 
     R.drawable.petronas_twin_tower, 
     R.drawable.ulm 
    }; 
    @Override 
    public int getItemPosition(Object object) { 
     // TODO Auto-generated method stub 
     return POSITION_NONE; 
    } 


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

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

    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 

     Context context = MainActivity.this; 

    Log.d("position","position" +position); 
     ImageView imageView = new ImageView(context); 

     int padding = context.getResources().getDimensionPixelSize(
      R.dimen.padding_medium); 
     imageView.setPadding(padding, padding, padding, padding); 
     imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
     imageView.setImageResource(mImages[position]); 

     ((ViewPager) container).addView(imageView, 0); 

     return imageView; 

    } 

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

@Override 
protected void onDestroy() { 
    // TODO Auto-generated method stub 

    super.onDestroy(); 
} 

} 

i pozisyon artımı ve sol taraf slayt görüntü eksiltme position.please bana yardım yaparken görüntü sağ ve sol side.i sağ taraf slayt grafiğe ihtiyaç slayt LogCat yanlış baskı pozisyonunda Bu kod . Teşekkür ederiz.

+0

Neden 0 konumunda 'ImageView' eklerim bu kodda sorunu çözmek gerek? – Luksprog

cevap

0

Eğer

public class MainAdapter extends BaseAdapter { 
     public Activity activity; 
     ArrayList<String> data = new ArrayList<String>(); 

     public MainAdapter(Activity a, ArrayList<String> d) { 
      activity = a; 
      data = d; 

     }  

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View cellView = convertView; 
      if (cellView == null) 
       { 
        cellView = new View(activity); 
        Log.d(TAG, "cellView null"); 
       } else 
       { 
        Log.d(TAG, "cellView not null"); 
        cellView = (View) convertView; 
       } 
       LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       cellView = inflater.inflate(R.layout.textviewinfo, null); 

       textView = (TextView) cellView.findViewById(R.id.textView1); 

       /*LinearLayout layout = (LinearLayout)cellView.findViewById(R.id.l1); 
       layout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 100));*/ 

       LinearLayout.LayoutParams parms2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT); 
       parms2.gravity=Gravity.CENTER_HORIZONTAL; 
       //parms2.gravity=Gravity.CENTER_VERTICAL; 
       textView.setLayoutParams(parms2); 
       textView.setText(data.get(position)); 
       textView.setGravity(Gravity.CENTER_VERTICAL); 
       textView.setTextColor(Color.YELLOW); 
       return cellView; 
     } 
     @Override 
     public int getCount() { 
      // TODO Auto-generated method stub 
      return data.size(); 
      //return 0; 
     } 

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

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

Teşekkür ederim. Sorunumu çözme –

+0

Bunun nasıl bir çözüm olduğunu merak ediyorum? Soru PagerAdapter hakkında ve cevap BaseAdapter ile ilgili: S – Shahzeb

İlgili konular