无法在同一活动

时间:2015-08-10 04:09:19

标签: java android

我正在运行一个在两个屏幕之间传递信息的基本应用程序,但是一旦我选择移动到第二个活动,我就会崩溃。

注释掉代码块,我已将问题缩小到NULL对象。

  

XML文件" activity_two"

     

<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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.id11434343.exercise2.ActivityTwo">

     

<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="@string/hintName" android:id="@+id/textViewName" android:layout_below="@+id/textViewHeader" android:layout_marginTop="15dp"/>

  

Java文件&#34; ActivityTwo&#34;

     

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent parentIntent = getIntent(); String name = parentIntent.getStringExtra(ActivityOne.NAME_MESSAGE); TextView finalName = (TextView) findViewById(R.id.textViewName); finalName.setText(name); }

当我运行TextView finalName = (TextView) findViewById(R.id.textViewName);时,它会传递一个空引用。我在第一个活动EditText name = (EditText) findViewById(R.id.editTextName);中有类似的行,但没有遇到任何问题。

  

引起:java.lang.NullPointerException: 尝试调用虚拟方法&#39; void android.widget.TextView.setText(java.lang .CharSequence)&#39;在null对象引用com.id11434343.exercise2.ActivityTwo.onCreate ActivityTwo.java:34)&#34;

我收到此错误,并尝试调试以仔细查看。但是,我的EditText name = null R.id.editTextName = 2131558488似乎是一个有效的ID,与其他元素的ID一致。我在这里找到了几个类似的问题,但是它们之前似乎已经归结为简单的错误,比如使用了错误的引用,所以我仔细检查了我的变量,并将它直接与工作版本进行了比较,以确保我是不要错过一些小事。

我在这里遗漏了什么吗?我无法理解为什么我在使用ViewText时遇到麻烦,我在使用EditText做同样的事情时没有遇到任何问题。

1 个答案:

答案 0 :(得分:2)

当您在setContentView()中使用错误的布局时,这会传递null,这意味着给定的ID在给定的布局中不存在。