我解決了與viewpager onclicklistsner問題的問題,但現在我注意到,它依賴於XML佈局文件中的所有元素。Viewpager不更新/加載xml項目
我實現了一個ViewPager與教程:tutsplus
現在我有問題,我在XML中定義的所有對象都(findViewById等後Debuggin模式不爲null)實例化正確的,但我不能reffer給他們。 爲了更好地理解它在這裏我PagerAdapter:
class MyPagerAdapter extends PagerAdapter {
public int getCount() {
return 3;
}
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.settings_view;
break;
case 1:
resId = R.layout.push_view;
break;
case 2:
resId = R.layout.listen_view;
break;
}
View view = inflater.inflate(resId, null);
((ViewPager) collection).addView(view, 0);
return view;
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
@Override
public Parcelable saveState() {
return null;
}
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}
,在這裏我實現了適配器和一點的樣本代碼:
ViewPager myPager = (ViewPager)findViewById(R.id.pager);
adapter = new MyPagerAdapter();
myPager.setAdapter(adapter);
myPager.setCurrentItem(0);
微調微調=(微調)listenView.findViewById(R.id .Dashboard_chooser); Button push =(Button)pushview.findViewById(R.id.pushbutton);
ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(getApplicationContext(),android.R.layout.simple_spinner_item, si);
spinner.setAdapter(spinnerArrayAdapter);
push.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//do something
});
Button和Spinner都沒有做任何事情。它們都是實例化正確的,但我不能單擊該按鈕,也不能獲得填充了SpinnerItems數組的Spinner。
在取消模式中,我擡頭看,它們都被實例化,SpinnerItemArray(si)得到它的值等等。
順便說一句,所有的東西在我實現ViewPager之前都有效,而且在設置android中的onClick後,按鈕也可以工作,然後在代碼中定義該方法但對於Spinner無效,所以我認爲它必須是有問題的instantiateItem方法或類似的東西。
有沒有人知道這個問題? 如果有人能幫忙,會太酷了。 此致弗洛