2015-05-05 39 views
1

以前曾詢問過此問題,並嘗試了所有解決方案,但仍無法正常工作。我是Android新手,可以犯下愚蠢的錯誤。在我的java文件中,當我嘗試找到一個控件(Edittext)時,它給了我一個nullpointer異常。 佈局XML文件如下:無法查看活動組件信息Java.lang.nullpointer例外

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="@drawable/floorwood" > 


    <ScrollView android:layout_height="fill_parent" 
     android:layout_width="fill_parent"> 
    <LinearLayout android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:orientation="vertical"> 

     <View 
     android:layout_width="fill_parent" 
     android:layout_height="4dp" 
     android:background="#c0c0c0"/> 

     <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:ems="20" 
     android:textSize="15dp" 
     android:textColor="#ffcc33" 
     android:background="@null" 
     android:text="Deduction" /> 


     <View 
     android:layout_width="fill_parent" 
     android:layout_height="4dp" 
     android:background="#c0c0c0"/> 


<TextView 
     android:id="@+id/lbl1" 
     android:layout_height="20dp" 
     android:layout_width="wrap_content" 
     android:ems="20" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:background="@null" 
     android:text="Actual House Rent Paid" ></TextView> 

    <EditText 
     android:id="@+id/hrp" 
     android:layout_width="wrap_content" 
     android:layout_height="20dp" 
     android:ems="10" 
     android:layout_gravity="right" 
     android:padding="2dp" 
     android:background="@null" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:inputType="number" 
     android:paddingLeft="30dp" 
     android:text="0"/> 


<TextView 
     android:id="@+id/lbl1" 
     android:layout_height="20dp" 
     android:layout_width="wrap_content" 
     android:ems="20" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:background="@null" 
     android:text="HRA given by the employee" ></TextView> 

     <EditText 
     android:id="@+id/hraemp" 
     android:layout_width="wrap_content" 
     android:layout_height="20dp" 
     android:ems="10" 
     android:layout_gravity="right" 
     android:padding="2dp" 
     android:background="@null" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:inputType="number" 
     android:paddingLeft="30dp"/> 

    <View 
     android:layout_width="fill_parent" 
     android:layout_height="2dp" 
     android:background="#c0c0c0"/> 




<TextView 
     android:id="@+id/lbl1" 
     android:layout_height="20dp" 
     android:layout_width="wrap_content" 
     android:ems="20" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:background="@null" 
     android:text="80C Deduction" /> 


    <EditText 
     android:id="@+id/dedu_80c" 
     android:layout_width="wrap_content" 
     android:layout_height="20dp" 
     android:ems="10" 
     android:layout_gravity="right" 
     android:padding="2dp" 
     android:background="@null" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:inputType="number" 
     android:paddingLeft="30dp"/> 



<TextView 
     android:id="@+id/lbl1" 
     android:layout_height="20dp" 
     android:layout_width="wrap_content" 
     android:ems="20" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:background="@null" 
     android:text="Home Loan Interest" /> 


    <EditText 
     android:id="@+id/homeloaninterest" 
     android:layout_width="wrap_content" 
     android:layout_height="20dp" 
     android:ems="10" 
     android:layout_gravity="right" 
     android:padding="2dp" 
     android:background="@null" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:inputType="number" 
     android:paddingLeft="30dp"/> 



    <View 
     android:layout_width="fill_parent" 
     android:layout_height="2dp" 
     android:background="#c0c0c0"/> 



<TextView 
     android:id="@+id/lbl1" 
     android:layout_height="20dp" 
     android:layout_width="wrap_content" 
     android:ems="20" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:background="@null" 
     android:text="Medical Insurance(self)" /> 


    <EditText 
     android:id="@+id/medi_ins_self" 
     android:layout_width="wrap_content" 
     android:layout_height="20dp" 
     android:ems="10" 
     android:layout_gravity="right" 
     android:padding="2dp" 
     android:background="@null" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:inputType="number" 
     android:paddingLeft="30dp"/> 





<TextView 
     android:id="@+id/lbl1" 
     android:layout_height="20dp" 
     android:layout_width="wrap_content" 
     android:ems="20" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:background="@null" 
     android:text="Medical Insurance(Dependents)" /> 

    <EditText 
     android:id="@+id/medi_ins_depe" 
     android:layout_width="wrap_content" 
     android:layout_height="20dp" 
     android:ems="10" 
     android:layout_gravity="right" 
     android:padding="2dp" 
     android:background="@null" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:inputType="number" 
     android:paddingLeft="30dp"/> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:ems="20" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:background="@null" 
     android:text="Dependents Age" /> 


    <RadioGroup 
     android:id="@+id/radioGroup1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:ems="20" 
     android:textSize="15dp" 
     android:textColor="#FFF" > 

     <RadioButton 
      android:id="@+id/radiobtndepen1" 
      android:layout_width="wrap_content" 
      android:layout_height="30dp" 
      android:ems="15" 
      android:padding="2dp" 
      android:background="@null" 
      android:textSize="15dp" 
      android:checked="true" 
      android:text="[1-59]" /> 

     <RadioButton 
      android:id="@+id/radiobtndepen2" 
      android:layout_width="wrap_content" 
      android:layout_height="30dp" 
      android:ems="15" 
      android:padding="2dp" 
      android:background="@null" 
      android:textSize="15dp" 
      android:checked="true" 
      android:text="[>59]" /> 
     </RadioGroup> 


     <View 
     android:layout_width="fill_parent" 
     android:layout_height="2dp" 
     android:background="#c0c0c0"/> 


<TextView 
     android:id="@+id/lbl1" 
     android:layout_height="20dp" 
     android:layout_width="wrap_content" 
     android:ems="20" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:background="@null" 
     android:text="Medical Reimbursement" /> 

     <EditText 
     android:id="@+id/medi_reim" 
     android:layout_width="wrap_content" 
     android:layout_height="20dp" 
     android:ems="10" 
     android:layout_gravity="right" 
     android:padding="2dp" 
     android:background="@null" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:inputType="number" 
     android:paddingLeft="30dp"/> 



<TextView 
     android:id="@+id/lbl1" 
     android:layout_height="20dp" 
     android:layout_width="wrap_content" 
     android:ems="20" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:background="@null" 
     android:text="Conveyance Allowance" /> 

     <EditText 
     android:id="@+id/conv_allo" 
     android:layout_width="wrap_content" 
     android:layout_height="20dp" 
     android:ems="10" 
     android:layout_gravity="right" 
     android:padding="2dp" 
     android:background="@null" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:inputType="number" 
     android:paddingLeft="30dp"/> 



<TextView 
     android:id="@+id/lbl1" 
     android:layout_height="20dp" 
     android:layout_width="wrap_content" 
     android:ems="20" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:background="@null" 
     android:text="Professional Tax" /> 

     <EditText 
     android:id="@+id/prof_tax" 
     android:layout_width="wrap_content" 
     android:layout_height="20dp" 
     android:ems="10" 
     android:layout_gravity="right" 
     android:padding="2dp" 
     android:background="@null" 
     android:textSize="15dp" 
     android:textColor="#FFF" 
     android:inputType="number" 
     android:paddingLeft="30dp"/> 


    <View 
     android:layout_width="fill_parent" 
     android:layout_height="2dp" 
     android:background="#c0c0c0"/> 

    </LinearLayout> 
    </ScrollView> 


</LinearLayout> 

的Java代碼如下:

public class Deduction extends Activity { 

    /** Called when the activity is first created. */ 
    EditText hrp; 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.deduction); 
      hrp = (EditText) findViewById(R.id.hrp); 
     } 

     String shrp=hrp.getText().toString(); 
} 

我無法識別的錯誤,爲什麼它給NullPointerException異常

+1

1)你確定你的EditText是'deduction.xml'文件? 2)將這一行'String shrp = hrp.getText()。toString();'移到其他地方點擊監聽器,因爲如果你移動到'onCreate()'那麼它將是空的。 – Piyush

+0

實際上,如果放在onCreate()中它不會是空的,它將會是「0」,因爲該值預填充在佈局中。但是你說得對,用戶輸入的值只會在稍後提供。 –

回答

2

答案將被發現縮進代碼以匹配括號:

public class Deduction extends Activity { 

    /** Called when the activity is first created. */ 
    EditText hrp; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.deduction); 
     hrp = (EditText) findViewById(R.id.hrp); 
    } 

    String shrp=hrp.getText().toString(); 
} 

然後我們c通知您嘗試在任何方法之外使用hrp EditText,也就是之前它已在onCreate()中分配了一個值。

移動這個代碼轉換成的onCreate()或隨後被稱爲生命週期或UI方法,例如:

public class Deduction extends Activity { 

    String shrp; //careful, this will be null until assigned! 

    /** Called when the activity is first created. */ 
    EditText hrp; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.deduction); 
     hrp = (EditText) findViewById(R.id.hrp); 

     shrp=hrp.getText().toString(); 
    } 
} 

當然,如果你沒有與身份編輯文本的佈局,它仍然會在NPE中嘗試使用它 - 在這種情況下,請檢查並確保將您發佈的佈局xml設置爲您的內容視圖,並且您自上次編輯它以來已經完全清理並重新構建了它。

0

嘗試在特定的聽衆得到的EditText值,在佈局中添加一個按鈕,然後使用下面的代碼:

public class Deduction extends Activity { 

     String shrp; 
     EditText hrp; 
     Button btnGetValue; 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.deduction); 
      hrp = (EditText) findViewById(R.id.hrp); 
      btnGetValue= (Button) findViewById(R.id.btnGetValue); 

      btnGetValue.setOnClickListener(new View.OnClickListener() { 
        public void onClick(View v) { 
         // Perform action on click 
        shrp=hrp.getText().toString(); 
        } 
       }); 
     } 
    } 
相關問題