Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在TextView中设置文本会引发空指针异常_Java_Android_Nullpointerexception_Textview - Fatal编程技术网

Java 在TextView中设置文本会引发空指针异常

Java 在TextView中设置文本会引发空指针异常,java,android,nullpointerexception,textview,Java,Android,Nullpointerexception,Textview,我刚刚开始android编程,在尝试在TextView中设置文本时遇到了这个错误。我研究过其他人的问题,但我似乎注意到了他们答案中指出的问题 以下是我的XML代码: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent

我刚刚开始android编程,在尝试在TextView中设置文本时遇到了这个错误。我研究过其他人的问题,但我似乎注意到了他们答案中指出的问题

以下是我的XML代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.everythingmath.MainActivity$PlaceholderFragment" >

<GridLayout
    android:id="@+id/problemLayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:columnCount="5"
    android:rowCount="1" >

    <TextView 
        android:id="@+id/firstNumber"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="First Number"
        android:textSize="20sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" + "
        android:textSize="30sp" />

    <TextView 
        android:id="@+id/secondNumber"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Second Number"
        android:textSize="20sp" />

    <EditText
        android:id="@+id/numTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="number" 
        android:hint="Text Goes Here"
        android:textSize="20sp"/>

</GridLayout>
</RelativeLayout>
正是在我试图设置文本的行中抛出了错误。随机数生成器也可以正常工作。

将占位符片段类定位在MainActivity类中

将公共视图onCreateView方法更改为

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_main, container, false);

    int firstNumber = createRandomNumber(10);
    int secondNumber = createRandomNumber(10);
    TextView firstNumText = (TextView)findViewById(R.id.firstNumber);
    TextView secondNumText = (TextView)findViewById(R.id.secondNumber);
    firstNumText.setText(Integer.toString(firstNumber));
    secondNumText.setText(Integer.toString(secondNumber));

    return rootView;
}
您可能需要将createRandomNumber方法移动到PlaceholderFragment类。如果您已经将Fragment的名称从Fragment_main更改为其他名称,请在这一行中也更改它

View rootView = inflater.inflate(R.layout.fragment_main, container, false);
您当前的代码无法工作,因为

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    [..]
}

您只能按ID查看findViewById,它是在activity_主布局中声明的。您的TextView视图可能在fragment_main布局中声明。

yiur activity_main.xml没有属于该片段的TextView。在onCreateView of Fragments中初始化它上面的布局的名称是什么?@DevCarlsberg我猜布局是自动创建的FragmentFragment\u main,因为工具:context=com.example.everythingmath.main活动$PlaceholderFragment
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    [..]
}