尝试在空对象引用上调用虚拟方法'java.lang.CharSequence android.widget.TextView.getText()' [英] Attempt to invoke virtual method 'java.lang.CharSequence android.widget.TextView.getText()' on a null object reference
本文介绍了尝试在空对象引用上调用虚拟方法'java.lang.CharSequence android.widget.TextView.getText()'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我得到了这个空异常:
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'java.lang.CharSequence android.widget.TextView.getText()'
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.widget.TextView.getText()' on a null object reference
我不知道为什么.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.LoginRegister);
setContentView(R.layout.activity_report);
final TextView infoid = (TextView) findViewById(R.id.idInfo);
RadioGroup rg = (RadioGroup)findViewById(R.id.rg);
final String radiovalue = ((RadioButton)findViewById(rg.getCheckedRadioButtonId())).getText().toString();
...
Button sendButton = (Button) findViewById(R.id.button2);
sendButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String text = infoid.getText().toString(); //what is wrong?
Log.w("message: ", radiovalue);
}
});
}
我的xml
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/idInfo"
android:hint="Add some extra information"
android:layout_weight="0.09"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp" />
<Button
android:text="Report"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/button2" />
有什么想法吗?
推荐答案
- 确保
activity_report.xml
中存在 -
尝试将
idInfo
声明为全局.
TextView
idInfo
..............
....................
TextView infoid;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_report);
infoid = (TextView) findViewById(R.id.idInfo);
.............
...................
Button sendButton = (Button) findViewById(R.id.button2);
sendButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String text = infoid.getText().toString();
..........
.................
}
});
}
更新:
要获取选定的 radioButton
文本:
RadioGroup radioGroup = (RadioGroup)findViewById(R.id.rg);
// get selected radioButton from radioGroup
int selectedId = radioGroup.getCheckedRadioButtonId();
// find the radioButton by returned id
radioButton = (RadioButton) findViewById(selectedId);
// radioButton text
String radiovalue = radioButton.getText();
希望这会有所帮助〜
这篇关于尝试在空对象引用上调用虚拟方法'java.lang.CharSequence android.widget.TextView.getText()'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文