我正在尝试Android网站上的第一个教程 here
目标是输入文本并将其发送到下一页以显示它。
然而,我总是得到“不幸的是我的第一个应用程序停止了”。
我注意到,当我评论setContentView(textView);
时,它可以正常工作。
这是我的代码:( LogCat由于某种原因停止显示问题所以我无法提供日志)
package com.example.myfirstapp;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class DisplayMessageActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// Get the message from the intent
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
// Create the text view
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
// Set the text view as the activity layout
// setContentView(textView);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_message);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}
答案 0 :(得分:1)
您无法在setContentView()
之前致电super.onCreate()
。
通常,super.onCreate()
应该是被覆盖的onCreate()
中的第一行。
请注意,您之后已经setContentView()
覆盖了已注释掉的setContentView()
内容视图。
答案 1 :(得分:1)
这行应该在你的onCreate(Bundle savedInstanceState)
之后super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_message);
试试。
答案 2 :(得分:1)
请尝试以下代码并发布logcat。
package com.example.myfirstapp;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class DisplayMessageActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_message);
// Get the message from the intent
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
// Create the text view
TextView textView = (TextView) findViewById(R.id.textView);
textView.setTextSize(40);
textView.setText(message);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}
}
我认为还需要在xml中声明TextView。 我希望这将有所帮助。谢谢!
答案 3 :(得分:0)
问题的解决方案是在为DisplayMessageActivity
创建新的Android活动时,确保将其Hierarchical parent选为MainActivity
。