之前已经问过这个问题,我尝试了所有解决方案,但仍然没有用。我是android新手,可以犯愚蠢的错误。在我的java文件中,当我尝试查找控件(Edittext)时,它给了我nullpointer异常。 布局xml文件如下:
<?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
答案 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();
}
然后我们可以注意到您尝试在任何方法之外使用 将此代码移动到onCreate()或随后调用的生命周期或UI方法,例如: 当然,如果您在布局中没有带有该标识的编辑文本,它仍然会尝试使用NPE - 在这种情况下,请检查并确保您设置布局xml发布为您的内容视图,并且自您上次编辑它以来,您已完成了全部清理和重新构建。hrp
EditText,也就是说之前已经在onCreate()中赋值。< / p>
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();
}
}
答案 1 :(得分: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();
}
});
}
}