Button.setOnClickListener(本); 错误

这是代码:

package com.elfapp; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener { private Button btn_Login; private EditText et_UserName; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); btn_Login = (Button)findViewById(R.id.button_login); btn_Login.setOnClickListener(this); et_UserName = (EditText)findViewById(R.id.editText_userName); setContentView(R.layout.main); } public void onClick(View v) { if (v.equals(btn_Login)) { // skriver ut en toast när man klickar på knappen //Toast.makeText(MainActivity.this, "Ansluter till server...", Toast.LENGTH_SHORT).show(); // används i debuggern för att påvisa att programmet exekverat hit //Log.v("ThisApp", "onClick Successful"); // TODO skickar det som står i et_UserName till controller (genom TCP/IP), som ska kolla om användaren finns Intent intent = new Intent(this, goListView); this.startActivity(intent); } } } 

当我到达btn_Login.setOnClickListener(this);时程序崩溃btn_Login.setOnClickListener(this); 声明,我没有太多关于做什么的线索..(不习惯Eclipse调试器..)

在初始化按钮之前移动setContentView(R.layout.main)调用。 这应该有所帮助。 祝你好运!

试试这个:将setContentView(R.layout.main)放在btn_Login = (Button)findViewById(R.id.button_login);

我想这可以解决你的问题。 试一下

我将使用其他示例,但您可以调整您的Java android类: android:onClick属性可以定义一个在发生点击时将被调用的方法。 这可能使用reflection,调用Class方法。

activity_main.xml上的按钮定义:

  

在您的活动类中创建一个方法:

 public void clickMap(View v) { //TODO: do something }