所以,我创建了一个调用两个布局的ViewPager,我想做的就是从两个布局中的一个布局中为viewpager中的按钮添加一个OnclickListener,我不知道为什么我的Onclick监听器是不工作这是代码:
我的主要课程:
public class hiphopvol2 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.slider_hiphop);
ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager2);
viewPager.setAdapter(new CustomPagerAdapter());
}}
CustomPagerAdapter(我为我的按钮创建了Onclicklistener):
public class CustomPagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return 2;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((View) object);
}
@Override
public void destroyItem(View view, int value, Object object) {
((ViewPager) view).removeView((View) object);
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public Object instantiateItem(View collection, int position) {
LayoutInflater layoutInflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resultId = 0;
switch (position) {
case 0:
resultId = R.layout.hiphopvol2;
View itemView2 = layoutInflater.inflate(R.layout.hiphopvol2,null);
final Button buu=(Button) itemView2.findViewById(R.id.bouton);
buu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick (View v) {
buu.setBackgroundColor(Color.GREEN) ;
} });
break;
case 1:
default:
resultId = R.layout.hiphopvol3;
break;
}
View view = layoutInflater.inflate(resultId, null);
((ViewPager) collection).addView(view, 0);
return view;
}}
我的两个布局是带有一些按钮的简单xml文件: 这是按钮的位置。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/bouton"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:text="hi" />
</LinearLayout>
我没有收到任何错误,但我的按钮“bouton”无效,任何帮助都将不胜感激,谢谢。