2015-05-05 36 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(); 
        } 
       }); 
     } 
    } 
相关问题