我有一个viewPager,在第二页我有一个按钮。我想让它在onClick上做点什么,但它没有做。
我在xml文件上完成了: 机器人:的onClick = “buttonClick”
我也尝试过onCreat内外的setOnClickListener ......
这些都没有成功......
我的viewPagerAdapter工作正常!我可以看到页面,并在它们之间切换。但我只是不能做一个按钮做任何事情。它可以在适配器中完成,但我会做很多事情,所以它不会有用......
感谢任何帮助。
这是代码:
public class ViewPagerProjectActivity extends Activity {
Button btn;
AbsoluteLayout l;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ViewPagerAdapter adapter = new ViewPagerAdapter( this );
ViewPager pager = (ViewPager)findViewById( R.id.viewpager );
pager.setAdapter( adapter );
pager.setCurrentItem(0);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
l = (AbsoluteLayout) findViewById(R.id.layout2);
btn = (Button) l.findViewById(R.id.button1);
// btn.setOnClickListener(this);
}
public void buttonClick(View v) {
if(v.equals(btn)) {
l.setBackgroundDrawable(getResources().getDrawable(R.drawable.background));
}
}
}
答案 0 :(得分:2)
我发现您的代码存在一些问题:
onSaveInstanceState
中做任何事情。仅在活动即将暂停时调用onSaveInstanceState
;直到那时它才会被调用,因此在那里附加一个监听器将不会做任何事情。 :(btn.setOnClickListener(this)
实现onClickListener,否则无法执行ViewPagerProjectActivity
。所以你可以实现它,或者只使用下面的代码。在onCreate
之后将此代码移至setContentView(R.layout.main)
:
Button btn = (Button) findViewById(R.id.button1);
OnClickListener listener = new OnClickListener(){
@Override
public void onClick(View v) {
v.setBackgroundDrawable(getResources().getDrawable(R.drawable.background));
}};
if (btn != null)
btn.setOnClickListener(listener);