空指针异常textview

时间:2019-04-01 13:45:11

标签: java android

在null对象引用的setText(java.lang.CharSquence)中存在Null指针异常,idk为什么? textview电视正在另一个活动中,也许这就是重点吗?

Intent intent = new Intent(this, DisplayResultActivit.class);
EditText edittext = findViewById(R.id.liczba);
EditText edittext2 = findViewById(R.id.liczba2);
int wpis2 = Integer.valueOf(edittext2.getText().toString());
int wpis = Integer.valueOf(edittext.getText().toString());
int suma  = wpis + wpis2;
TextView tv = findViewById(R.id.result);
tv.setText(String.valueOf(suma));
startActivity(intent);

3 个答案:

答案 0 :(得分:2)

的确,如果尝试从findViewById中访问对象(如果找不到),则将获得NullPointerException。

我假设您尝试在要重定向到的“活动”视图上填充TextField?在这种情况下,您可以向该意图中添加其他对象,这些对象将从第二个活动中读出。

在第一个活动中尝试:

intent.putExtra("myText", String.valueOf(suma));
startActivity(intent);

然后在第二个活动onCreate上尝试:

Intent incomingIntent = getIntent();

if (incomingIntent.hasExtra("myText")) {
    TextView tv = findViewById(R.id.result);
    tv.setText(incomingIntent.getStringExtra("myText");
}

答案 1 :(得分:0)

空对象引用上的setText(java.lang.CharSquence)中的空指针异常

Button

作为例外,上面的代码表明在您的rootview树中找不到电视。因此,您必须在此活动的contentView(布局xml文件)中添加TextView id为“ result”。

答案 2 :(得分:0)

您无法直接访问其他活动的textView,在启动活动时必须先传递意图,然后在创建活动时按ID查找TextView,然后从上一个活动传递的getIntent并将其设置为文本视图。 / p>

首先创建意图中的活动传递值

    EditText edittext = findViewById(R.id.liczba);
    EditText edittext2 = findViewById(R.id.liczba2);
    int wpis2 = Integer.valueOf(edittext2.getText().toString());
    int wpis = Integer.valueOf(edittext.getText().toString());
    int suma  = wpis + wpis2;
    Intent intent = new Intent(this, DisplayResultActivit.class);
    intent.putExtra("suma", suma);
    startActivity(intent);

,然后在DisplayResultActivit

Intent intent= getIntent();
TextView tv = findViewById(R.id.result);
if (getIntent().getExtras() != null) {
    int suma = getIntent().getIntExtra("suma",0);
    tv.setText(String.valueOf(suma));
}
相关问题