我正在关注本教程:
我正在修改 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);
在 mainFragment
的 onCreateView
中,因为 DisplayActivityMessageTextView
是 fragment 的一部分。
关于java - Android 在点击发送按钮后停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25302887/