2016-04-21 49 views
-1

您好我一直在嘗試在按鈕上使用onclicklistener,但它給我一個錯誤。這是我使用的代碼:不能使用android中的按鈕

public class login extends AppCompatActivity { 

    private LoginButton loginButton; 
    private CallbackManager callbackManager; 
    private Button testbutton; 




    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     testbutton = (Button) findViewById(R.id.login_activity_button); 

     testbutton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

      } 
     }); 

這是我收到的錯誤:

了java.lang.RuntimeException:無法啓動活動ComponentInfo {com.buddifyapp.buddify.buddify/COM。 buddifyapp.buddify.buddify.UI.login}:java.lang.NullPointerException:嘗試調用空對象的虛擬方法'void android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)'參考

我在這裏做錯了什麼?

+1

你要爲你的活動內容視圖設置活動的佈局?我沒有看到,但也許你只是沒有向我們展示一切 – Zielony

回答

1

您必須先調用setContentView,否則您無法在佈局中找到您的視圖。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    /* ADD THIS BELOW */ 
    setContentView(R.layout.my_layout); 
    testbutton = (Button) findViewById(R.id.login_activity_button); 

    testbutton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

     } 
    }); 
+0

即使在設置內容後仍然會得到相同的錯誤 – Nant

+0

請向我們展示您的佈局(文件名稱和內容)。確保你使用自己的名字(而不是我的例子中的「my_layout」)。 – Francesc

0

參考您的按鈕是找不到的,因爲你還沒有通過setContentView(R.layout.your_layout)之後super.onCreate(savedInstanceState);