Android SetText 空指针异常

标签 android settext

我刚刚开始 Android 开发,我相信你可以帮忙(我的英语不好)

我有一个主要 Activity ,在某个时刻我想调用另一个 Activity ,其中想要用一些消息更改 TextView 。此时,如果我不输入,我会得到一个空指针异常 setContentView(R.layout.register);

但是当我放置该行时,我在一毫秒内正确地看到了带有新文本“Android2”的注册 Activity ,然后再次跳转到没有文本的注册 Activity 。我的意思是我画了两次。 我希望我已经解释得足够多了。

问题是我必须将 setcontentview 放在哪里以及使用什么布局。

非常感谢你,丹尼尔

我向您展示一些代码:

我的主要 Activity 有这个方法:

  protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {

        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK)
        {
            Intent i = new Intent(this, register.class);
            startActivity(i);       

            setContentView(R.layout.register);
            TextView text = (TextView) findViewById(R.id.texto);

            try {
                text.setText("Android2");
                }catch(Exception e) {
                    Log.i("Log", e.getMessage()+"Error!"); // LogCat message
                }
        }
        //super.onActivityResult(requestCode, resultCode, data);
    }

我的第二个 Activity 类称为注册:

public class register extends Activity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.register);
   }
}

注册接口(interface)为register.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/about_content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/register" />

    <TextView
        android:id="@+id/texto"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/continue_button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/save" />

        <Button
            android:id="@+id/new_button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/repeat" />
    </LinearLayout>

</LinearLayout>

最佳答案

您基本上所做的事情如下:

  1. 您准备好开始另一项 Activity 的 Intent
  2. 您开始了您准备 Intent 的 Activity
  3. 您将当前 Activity 的内容设置为 R.layout.register
  4. 您获得了textView(在当前 Activity 上)
  5. 您将textView的文本设置为Android2

并且,此时屏幕上出现了新的 Activity 。请注意,您的代码不正确,因为您在当前 Activity 中操作 UI 元素,并且您期望新启动的 Activity 发生更改。

移动此代码

TextView text = (TextView) findViewById(R.id.texto);

try {
    text.setText("Android2");
}catch(Exception e) {
    Log.i("Log", e.getMessage()+"Error!"); // LogCat message
}

到注册 Activity 的 onCreate() 方法。

顺便说一句,通常,当您创建一个类时,根据标准,它的名称应该以大写字母开头。

关于Android SetText 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10266433/

相关文章:

android - App关闭时不触发AlarmManager

android - 如何在 Android 中更改 Button 小部件的文本?

java - 无法正确格式化 setText()

java - Android SetText 在 OkHttp 异步回调中导致崩溃

Android非UI Fragment使用

java - 当我通过 NavController.navigateUp() 返回时,为什么我的 fragment *有时* 是空白的?

java - 布局看不到库

android - Camera2 API Android min SDK

java - JTextArea 显示文本和字符串

java - 为什么我的 TextView 不会在 android 中更新/重置?