2017-01-10 83 views
-1

enter image description here我試圖做一個Android應用程序,但我遇到了這個錯誤,我不知道該怎麼做,爲什麼它顯示從第一個地方,應用程序崩潰與以下在日誌中的錯誤:空指針異常當進行意圖崩潰時

E/AndroidRuntime:致命異常:主 工藝:com.example.ramy.medicare,PID:2487 了java.lang.RuntimeException:無法啓動活動ComponentInfo {com.example.ramy .medicare/com.example.ramy.medicare.Profile.materialtabs.activity.MainActivity}:java.lang.NullPointerException:試圖調用虛方法'void android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)'在空對象引用 上在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 在android.app.ActivityThread.-wrap12(ActivityThread.java) 在機器人。 app.ActivityThread $ H.handleMessage(ActivityThread.java:1477) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:154) 的機器人。 app.ActivityThread.main(ActivityThread.java:6119) 在java.lang.reflect.Method.invoke(本機方法) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

引起:顯示java.lang.NullPointerException:嘗試在上一個com。示例空對象引用 調用虛擬方法 '無效android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)'。 ramy.medicare.Profile.materialtabs.activity.MainActivity.onCreate(MainActivity.java:43)

    at android.app.Activity.performCreate(Activity.java:6679) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)  
        at android.app.ActivityThread.-wrap12(ActivityThread.java)  
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)  
        at android.os.Handler.dispatchMessage(Handler.java:102)  
        at android.os.Looper.loop(Looper.java:154)  
        at android.app.ActivityThread.main(ActivityThread.java:6119)  
        at java.lang.reflect.Method.invoke(Native Method)  
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)  
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)  

這裏是代碼:

package com.example.ramy.medicare.Profile.materialtabs.activity; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.LayoutInflater; 
import android.view.View; 

import android.widget.Button; 

import com.example.ramy.medicare.R; 




public class MainActivity extends AppCompatActivity implements View.OnClickListener { 


    private Button btnScrollableTabs_b, btnIconTabs_b, btnCustomIconTextTabs_b; 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
//  toolbar = (Toolbar) findViewById(R.id.toolbar); 
//  setSupportActionBar(toolbar); 








     btnScrollableTabs_b = (Button) findViewById(R.id.btnScrollableTabs); 
     btnIconTabs_b = (Button) findViewById(R.id.btnIconTabs); 
     btnCustomIconTextTabs_b = (Button) findViewById(R.id.btnCustomIconTabs); 

     //at these lines is the error: 
     **btnScrollableTabs_b.setOnClickListener(this); 
     btnIconTabs_b.setOnClickListener(this); 
     btnCustomIconTextTabs_b.setOnClickListener(this);** 



//  btnSimpleTabs = (Button) findViewById(R.id.btnSimpleTabs); 
//  btnScrollableTabs = (Button) findViewById(R.id.btnScrollableTabs); 
//  btnIconTextTabs = (Button) findViewById(R.id.btnIconTextTabs); 
//  btnIconTabs = (Button) findViewById(R.id.btnIconTabs); 
//  btnCustomIconTextTabs = (Button) findViewById(R.id.btnCustomIconTabs); 

//  btnSimpleTabs.setOnClickListener(this); 

//  btnScrollableTabs.setOnClickListener(this); 
//  btnIconTextTabs.setOnClickListener(this); 
//  btnIconTabs.setOnClickListener(this); 
//  btnCustomIconTextTabs.setOnClickListener(this); 

} 

    @Override 
    public void onClick(View view) { 
     switch (view.getId()) { 

      case R.id.btnScrollableTabs: 
       startActivity(new Intent(MainActivity.this, ScrollableTabsActivity.class)); 
       break; 
      case R.id.btnIconTabs: 
       startActivity(new Intent(MainActivity.this, IconTabsActivity.class)); 
       break; 
      case R.id.btnCustomIconTabs: 
       startActivity(new Intent(MainActivity.this, CustomViewIconTextTabsActivity.class)); 
       break; 
     } 
    } 
} 

請告訴我該怎麼辦我如此困惑,我實例化對象,爲什麼我得到這個錯誤?

enter image description here

+0

'** btnScrollableTabs_b.setOnClickListener(this);'是這個'**'爲了什麼? – Roljhon

+0

他試圖在發佈堆棧溢出 –

回答

0

請確保您有在佈局文件「btnScrollableTabs_b」中定義的正確名稱應該是有,如果findViewById()無法找到返回null元素。

+0

問題時使它變爲粗體在上面看到我的佈局在這裏輸入圖像說明鏈接 –

+0

你可以添加布局文件的文本視圖? –

+0

我沒有它的文本視圖看問題中的上述鏈接:「你在這裏輸入圖像描述」,你會看到文本視圖佈局 –

0

交叉引用您在XML佈局文件中使用的ID,並使用您用於實例化OnCreate內的按鈕的ID。

如果ID的不匹配並因此爲NullPointerException,則按鈕將被分配空值。

+0

我該如何交叉引用,該怎麼辦? –

+0

檢查佈局XML文件中的ID,並將它們與您用來實例化的ID進行匹配。 –

+0

我做了這裏是我的佈局: –