尝试在空对象引用上调用虚拟方法'java.lang.CharSequence android.widget.TextView.getText()' [英] Attempt to invoke virtual method 'java.lang.CharSequence android.widget.TextView.getText()' on a null object reference

查看:227
本文介绍了尝试在空对象引用上调用虚拟方法'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" />

有什么想法吗?

推荐答案

  1. 确保 activity_report.xml
  2. 中存在 TextView idInfo
  3. 尝试将 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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆