我解决了与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方法或类似的东西。
有没有人知道这个问题? 如果有人能帮忙,会太酷了。 此致弗洛