java - Android 在点击发送按钮后停止工作

标签 java android xml eclipse textview

我正在关注本教程:

  1. http://android4beginners.com/2013/07/lesson-1-3-how-to-change-a-color-of-text-and-background-in-textview/
  2. http://developer.android.com/training/basics/firstapp/starting-activity.html#BuildIntent

我正在修改 DisplayMessageActivity 以更改输出文本的颜色并使用 xml 更改背景。

我的代码有问题,当我尝试运行它时,我的 Android 应用程序关闭。该应用程序将显示从前一个 View 写入的文本,并在单击“发送”按钮时使用另一个 View 显示它。

显示消息 Activity :

public class DisplayMessageActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 // Get the message from the intent
 Intent intent = getIntent();
 String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
 TextView textView = (TextView) findViewById (R.id.DisplayActivityMessageTextView);
 // Create the text view
 textView.setText(message);
 // Set the text view as the activity layout
 setContentView(textView);
}

我有 2 个 XML 文件:activity_main.xml 和fragment_main.xml 我已将textView 包含在fragment_main.xml 中。

<TextView android:id="@+id/DisplayActivityMessageTextView"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:textColor="@color/opaque_red" />

字符串.xml:

<color name="opaque_red">#f00</color>

日志猫:

08-13 10:22:43.919: E/AndroidRuntime(25966): FATAL EXCEPTION: main
08-13 10:22:43.919: E/AndroidRuntime(25966): Process: com.example.myfirstapp, PID: 25966
08-13 10:22:43.919: E/AndroidRuntime(25966): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myfirstapp/com.example.myfirstapp.DisplayMessageActivity}: java.lang.NullPointerException
08-13 10:22:43.919: E/AndroidRuntime(25966):
...
08-13 10:22:43.919: E/AndroidRuntime(25966): Caused by: java.lang.NullPointerException
08-13 10:22:43.919: E/AndroidRuntime(25966):
...

最佳答案

findViewById 之前使用 setContentView(textView);

即将您的代码重写为

    @Override
    protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     // Set the text view as the activity layout
     setContentView(R.layout.activity_main);
     // Get the message from the intent
   }

并改变

  Intent intent = getIntent();

  Intent intent = getActivity().getIntent();

并使用

  Intent intent = getActivity().getIntent();
     String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
     TextView textView = (TextView) findViewById R.id.DisplayActivityMessageTextView);
     // Create the text view
     textView.setText(message);

mainFragmentonCreateView 中,因为 DisplayActivityMessageTextView 是 fragment 的一部分。

关于java - Android 在点击发送按钮后停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25302887/

相关文章:

java - 无法获取信号量 - Zuul 配置

java - assetManager.loadModel 导致 AssetNotFound 异常

java - 如果 ANT 构建文件所引用的 java 程序抛出异常,则该文件失败

java - Android SQLite SUM,抛出空指针

php - simplexml_load_file 和 simplexml_load_string 的区别

android - 以编程方式单击时更改布局背景

java - 缺少 Google App Engine 应用程序的 JSON 库?

android - "Unknown Application ABI:"而 'debug as native application'

php - Android:从 JSON 获取数据

c# - 缺少根元素