按钮onClick不起作用

时间:2012-02-01 13:04:40

标签: android button android-button android-viewpager

我在每个页面上创建了一个有三个布局的viewPager ...我想在第二页上处理一个按钮,但不知何故我不能......(PS:没有按钮代码,我的viewPager工作)我只是简单地尝试单击时更改背景...

这是我的代码:

public class ViewPagerProjectActivity extends Activity implements OnClickListener{

Button btn;

@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);


}


public void OnClick(View v) {
    if(v.equals(btn)) {
    LinearLayout l = (LinearLayout) findViewById(R.id.deneme2);
            l.setBackgroundDrawable(getResources().getDrawable(R.drawable.background));
    }       
}    
}

这是错误:

E/AndroidRuntime(273): FATAL EXCEPTION: main
E/AndroidRuntime(273): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.yahya.ViewPagerProject/com.yahya.ViewPagerProject.ViewPagerProjectActivity}: java.lang.ClassCastException: com.yahya.ViewPagerProject.ViewPagerProjectActivity
E/AndroidRuntime(273):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
E/AndroidRuntime(273):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
E/AndroidRuntime(273):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)

7 个答案:

答案 0 :(得分:10)

尝试这些行,我希望它有效......

View deneme2lout = (View) getView.inflate(R.layout.deneme2,null);
btn = (Button) deneme2lout.findViewById(R.id.button1);
btn.setOnClickListener(this);

答案 1 :(得分:2)

尝试使用:

public class ViewPagerProjectActivity extends Activity {

Button btn;

@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);

    LinearLayout l = (LinearLayout) findViewById(R.id.layout1);
    btn = (Button) findViewById(R.id.button1);    
    btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {               

             l.setBackgroundDrawable(getResources().getDrawable(R.drawable.background));
        }
    });
}

答案 2 :(得分:1)

> btn.setOnClickListener((OnClickListener) this);

这不起作用,因为ViewPagerProjectActivity没有必要的

implements OnClickListener界面

答案 3 :(得分:1)

尝试

 public class ViewPagerProjectActivity extends Activity implements OnClickListener

 then btn.setOnClickListener(this); 

答案 4 :(得分:0)

当我向XML文件添加自定义UI元素时,即使我遇到了这种问题..

我刚从Xml文件中删除了该特定项目并构建项目并再次恢复该文件。问题解决了。看起来很疯狂..但只试一次。

答案 5 :(得分:0)

当您尝试处理按钮的单击时,您有两个选项

  1. 在xml布局文件中将android:onClick设置为类似“myButtonClick”的内容。然后在您的相关Activity .java文件中,您将使用此布局的方法public void myButtonClick(View v)。然后把你的逻辑放在那里。
  2. 在你的onCreate()put

    btn = (Button) findViewById(R.id.button1);  
    btn.setOnClickListener(new OnClickListener() {
    
      @Override
      public void onClick(View arg0) {               
    
         //Your logic here
      }
    });
    

答案 6 :(得分:0)

我认为这会帮助你......

在android中使用按钮...

使用java类文件中的Button将XML文件中的按钮映射为...

Button bt=(Button)findViewById(R.layout.button_id_in_your_xml);

next ..按钮bt调用onclickListener,如下所示..

bt.setOnClickListener(new View.onClickListener(){

public void onClick(View arg0) {

    //write what you want to do when you click the button
}
);