2016-07-20 41 views
0

我目前正在開發一個類似於圖庫應用程序的應用程序。應用程序需要從資源文件夾加載一些圖像,當用戶選擇一個圖像時,應用程序應加載所選圖像,如果用戶滑動屏幕,應用程序應加載下一張圖像或上一張圖像。幻燈片上的圖片庫應用程序

我遇到的問題是,當我點擊圖片時,應用程序總是加載第一張圖片。我試圖用int來解決它,但程序給我一個錯誤。

我很新的android編程,抱歉,如果它是一個簡單的問題。

這裏是應用程序的代碼:

主要活動:

package com.example.erasor.pruebaslide; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 

public class MainActivity extends AppCompatActivity { 

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

public void Image1 (View view) { 
    Intent intent= new Intent(this, Slide.class); 
    startActivity(intent); 
} 

public void Image2 (View view) { 
    Intent intent = new Intent(this, Slide.class); 
    intent.putExtra("position", 2); 
    startActivity(intent); 
} 
} 

幻燈片活動:

package com.example.erasor.pruebaslide; 

import android.content.Context; 
import android.content.Intent; 
import android.support.v4.view.PagerAdapter; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ImageView; 
import android.widget.RelativeLayout; 


public class Slide extends AppCompatActivity { 



private CustomPagerAdapter mCustomPagerAdapter; 


private ViewPager mViewPager; 

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

    Intent intent = getIntent(); 
    int position = intent.getIntExtra("position", 0); 

    mCustomPagerAdapter = new CustomPagerAdapter(this); 

    mViewPager = (ViewPager) findViewById(R.id.container); 
    mViewPager.setAdapter(mCustomPagerAdapter); 

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

} 

int[] mResources = { 
     R.drawable.image1, 
     R.drawable.image2, 
     R.drawable.image3, 
     R.drawable.image4, 
}; 

class CustomPagerAdapter extends PagerAdapter { 

    Context mContext; 
    LayoutInflater mLayoutInflater; 

    public CustomPagerAdapter(Context context) { 
     mContext = context; 
     mLayoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

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

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

    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 
     View itemView = mLayoutInflater.inflate(R.layout.fragment_slide, container, false); 

     ImageView imageView = (ImageView) itemView.findViewById(R.id.image); 
     imageView.setImageResource(mResources[position]); 

     container.addView(itemView); 

     return itemView; 
    } 

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

回答

0

我想你錯過,你告訴部分位置顯示的mViewPager,試試這個:

mViewPager.setAdapter(mCustomPagerAdapter); 
mViewPager.setCurrentItem(position); 
+0

謝謝,它現在工作! – Erasor