2012-02-13 123 views
0

需要帮助,试图找出为什么按钮onCLick事件不起作用。我把它的onCreate,但它似乎并不奏效:Android - Button not firing

public class MainActivity extends Activity implements OnClickListener { 
/** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState);   
     setContentView(R.layout.main); 

     //Setup Refresh button listener. 
     Button btn = (Button) findViewById(R.id.btnRefresh); 
     btn.setOnClickListener(btnRefreshClick);  
    } 

    private OnClickListener btnRefreshClick = new OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      Toast.makeText(getApplicationContext(), "Get Data from Server", Toast.LENGTH_LONG).show(); 
     } 
    }; 
} 

我甚至拿出面包呼叫并尝试写入logcat的但是当我把一个断点在Log.e声明,它从来没有到达那里。

+1

尝试删除'实现OnClickListener'。 – eightx2 2012-02-13 21:59:44

回答

2

您的代码有效且有效。 如果您未在活动中直接覆盖方法onClick,则应删除implements OnClickListener

将您的.xml添加到您的问题,因为问题看起来在这里

+0

谢谢,删除OnClickListener后,我仍然有问题,但我发现为什么....我在设置OnClickListener事件之前使用setContext到不同的布局。谢谢一堆! – Robert 2012-02-14 04:32:19

2

你确定你按下了正确的按钮吗?你确定你是资源ID /布局是正确的吗?

0

您在onCreate()方法中指定了OnClickListener ......这是不对的。如果您的活动正在实施OnClickListener,则应该有派生的onClick()方法。

用途:

btn.setOnClickListener(this); 

代替,并弹出从的onClick()方法敬酒从分离的onCreate()。技术上

btn.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v){ 
     Toast.makeText(getApplicationContext(), "Get Data from Server", Toast.LENGTH_LONG).show(); 
    } 
}); 

,你应该工作,虽然,所以确保你点击右键,你没有onClick在为你的布局XML:

否则,您可以改为试试这个按钮。