林顯示圖像試圖在這一代碼nature2
和nature4
這就需要顯示在一個動態向Fragment
顯示兩個圖像 - 第一影像nature2
文本"Fragment"
一起刷卡nature4
文本"Fragment2"
後。如何在這段代碼
代碼不顯示任何錯誤,但我所有的運行時,我得到的是文本"Fragment1"
,刷卡"Fragment2"
等以後。
public class MainActivity extends AppCompatActivity {
private ViewPager viewPager;
private ArrayList<String> strs;
private FragmentPagerAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i("x", "onCreateActivity");
// create an custom array list of your object class here which you can pass to pager adapter
strs = new ArrayList<String>();
strs.add("Fragment 1");
strs.add("Fragment 2");
strs.add("Fragment 3");
strs.add("Fragment 4");
strs.add("Fragment 5");
viewPager = (ViewPager) findViewById(R.id.pager);
adapter = new FragmentPagerAdapter(getSupportFragmentManager(), strs);
viewPager.setAdapter(adapter);
}
public class FragmentPagerAdapter extends FragmentStatePagerAdapter {
private ArrayList<String> itemData;
Fragment fragment;
int resId;
public FragmentPagerAdapter(FragmentManager fm, ArrayList<String> itemData) {
super(fm);
this.itemData = itemData;
}
@Override
public int getCount() {
return itemData.size();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
super.destroyItem(container, position, object);
Log.i("x", "destroyItem");
}
@Override
public Fragment getItem(int position) {
Log.i("x", "getItem");
// pass data to fragment
String str = itemData.get(position);
if (position == 0) {
resId = R.drawable.nature2;
} else if (position == 1) {
resId = R.drawable.nature4;
}
fragment = Fragment1.newInstance(str, resId);
return fragment;
}
}
}
而且Fragment.class
public class Fragment1 extends Fragment {
public Fragment1(){}
String stringValue;
int imagesResId;
TextView textView;
private int [] images = {R.drawable.nature2,R.drawable.nature4};
// static method to create the Fragment1 frag containing string
public static Fragment1 newInstance(String str, int imagesResId)
{
Fragment1 slider=new Fragment1();
Bundle b=new Bundle();
b.putString("stringValue", str);
b.putInt("images",imagesResId);
slider.setArguments(b);
return slider;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.i("x","onCreateViewFragment");
View view = inflater.inflate(R.layout.fragment1, container, false);
textView = (TextView) view.findViewById(R.id.textView);
return view;
}
// you will get data in this method where you can set value to your views
@Override
public void onActivityCreated(Bundle savedInstanceState) {
Log.i("x","onActivityCreatedFragment");
super.onActivityCreated(savedInstanceState);
stringValue = getArguments().getString("stringValue");
textView.setText(stringValue);
}
@Override
public void onCreate(Bundle savedInstanceState) {
Log.i("x","onCreateFragment");
super.onCreate(savedInstanceState);
imagesResId = getArguments().getInt("images");
stringValue = getArguments().getString("stringValue");
}
}
你知道如何讓ImageView顯示圖像資源嗎? – 0X0nosugar
'ImageView imageResId =(ImageView)view.findViewById(image); imageResId.setImageResource(images [1]);'..但現在我得到的圖像無處不在。如何從[]中正確設置圖像? – MissAndroid