Android 点击viewPager上的按钮?

Android 点击viewPager上的按钮?,android,button,android-viewpager,buttonclick,Android,Button,Android Viewpager,Buttonclick,我有一个viewPager,在第二页我有一个按钮。我想让它在点击时做点什么,但它没有做 我已经对xml文件进行了以下操作: android:onClick=“buttonClick” 我还尝试了onCreat内外的setOnClickListener 这两个都不起作用 我的viewPagerAdapter工作正常!我可以看到页面,并在页面之间切换。但我就是不能让按钮做任何事情。它可以在适配器中完成,但我会做很多事情,所以它不会有用 感谢您的帮助 以下是代码: public class ViewP

我有一个viewPager,在第二页我有一个按钮。我想让它在点击时做点什么,但它没有做

我已经对xml文件进行了以下操作: android: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));
    }
}

}我发现您的代码有一些问题:

  • 除了…保存状态外,您不应该在
    onSaveInstanceState
    中执行任何操作<代码>onSaveInstanceState仅在活动即将暂停时调用;在此之前不会调用它,因此在其中附加侦听器不会起任何作用:(
  • 除非您的
    ViewPagerProjectActivity
    实现了onClickListener,否则您不能执行
    btn.setOnClickListener(此)
    。因此您可以实现它,或者只使用下面的代码
  • 将此代码移到
    setContentView(R.layout.main)
    之后的
    onCreate


    你是对的…我犯了一个错误,它应该是“onWindowFocusChanged”而不是“onSaveInstanceState”…现在它工作了:)顺便说一下,它也按照你说的方式崩溃了。。。
    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);