2011-05-13 48 views
1

這是代碼:Button.setOnClickListener(this);錯誤

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);聲明,我沒有太大的做什麼..線索的程序崩潰(不使用Eclipse調試器。)

+1

你能告訴我們的日誌貓的輸出? – Flo 2011-05-13 12:10:55

回答

5

在初始化按鈕前移動setContentView(R.layout.main)調用。這應該有所幫助。祝你好運!

5

試試這個:地方setContentView(R.layout.main)上述btn_Login = (Button)findViewById(R.id.button_login);

我想這將解決您的問題。試一試

+0

你快! =) – Egor 2011-05-13 12:15:27

+0

謝謝羅莎莉,它現在有效! :) 我不得不確保其他一些東西也能工作,因此我遲到的反應,無論如何感謝您的快速回復! :) – 2011-05-13 12:34:07

1

我會用其他的例子,但你能適應你的Android的Java類: 屬性安卓的onClick可以定義一個方法,當點擊發生將被調用。這可能會使用反射,調用Class方法。您activity_main.xml中

按鈕定義:

<Button 
    android:id="@+id/mapshow_button" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/txtMsg" 
    android:layout_alignLeft="@+id/editLog" 
    android:layout_alignRight="@+id/txtLogitude" 
    android:text="@string/lblBtnMap" 
    android:textSize="10sp" 
    android:onClick="clickMap"/> 

創建一個方法到你的活動類:

public void clickMap(View v) { 
    //TODO: do something  
} 
相關問題