我有一个可视寻呼机,在第二页我有一个按钮。我想让它马上做点什么,但它不做。
我已经完成了XML文件:
android:onclick=“按钮单击”
我也试过在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只在活动即将暂停时调用;在此之前不会调用它,因此在其中附加侦听器将不会执行任何操作。:(
除非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);

10-07 19:22
查看更多