基本上我想按一个按钮并在新的空白窗口中显示预定义的字符串变量。我尝试了几种方法,但没有工作。这是我的第一个应用程序,所以我对如何使用类没有太多的了解。这是我现在用于Onclick操作的代码
public void receivedata(View data) {
Intent intent= new Intent(this, ReceivedataActivity.class);
intent.putExtra("My Message", false);
startActivity(intent);
}
这是我在课堂上的代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.receivedata);
Intent intent = getIntent();
String message = intent.getStringExtra("My Message");
TextView comm = (TextView) findViewById(R.id.textView1);
comm.setTextSize(40);
comm.setText(message);
setContentView(comm);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}
只要按下按钮,应用程序就会崩溃...有关如何执行此操作的任何想法?
这就是LogCat所说的:这就是te logcat所说的E / AndroidRuntime(11090):java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.mcudisplay / com.example.mcudisplay.ReceivedataActivity} :java.lang.IllegalStateException:您需要在此活动中使用Theme.AppCompat主题(或后代)
答案 0 :(得分:1)
你正在调用setContentView两次,这告诉我其中一个调用是错误的和不必要的。 R.layout.receivedata
包含您使用findViewById()
检索的TextView,并且您不打算进行第二次调用;或者您的意思是仅使用TextView调用setContentView
,在这种情况下,您应该使用LayoutInflater单独对其进行充气,或者使用new
创建它。
答案 1 :(得分:0)
尝试在不使用该行的情况下运行您的应用:
setContentView(comm);
您已将内容视图设置为receivedata.xml文件。