Android - 按钮没有触发

时间:2012-02-13 21:50:36

标签: android

需要帮助才能弄清楚为什么按钮onCLick事件无法正常工作。我在onCreate中设置它但它似乎不起作用:

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();
        }
    };
}

我甚至拿出Toast调用并尝试写入LogCat但是当我在Log.e语句上放置一个断点时,它永远不会到达那里。

3 个答案:

答案 0 :(得分:2)

你确定要按右键吗?你确定你的资源ID /布局是否正确?

答案 1 :(得分:2)

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

将.xml添加到您的问题中,因为问题似乎在这里

答案 2 :(得分:0)

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

使用:

btn.setOnClickListener(this);  
而不是从onCreate()中单独的onClick()方法弹出toast。

否则,你可以试试这个:

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

从技术上讲,你的应该工作,所以请确保你点击了右键,并且你的布局xml中没有onClick按钮。