我创建了一个主要活动,它会将我发送到ActiviteResultats
个活动。
我的目标现在只是在此活动中显示一条消息(来自主要消息的消息)。
我关注了Starting Another Activity tutorial。
问题是,当我开始ActiviteResultats
活动时,我遇到了错误:
"找不到ID为0x7f080000的视图...........对于片段PlaceholderFragment"
......应用程序关闭。
我还不知道如何使用片段,教程说我不必在这个例子中使用它。
我哪里错了?
我的代码:
package com.example.surveyor;
import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class ActiviteResultats extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activite_resultats);
if (savedInstanceState == null) {
getFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
String message = "TODO";
// 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);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activite_resultats, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(
R.layout.fragment_activite_resultats, container, false);
return rootView;
}
}
}
答案 0 :(得分:5)
我遇到了同样的问题。只需删除部分:
if (savedInstanceState == null) {
getFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
这解决了我。希望有所帮助!
答案 1 :(得分:0)
快速浏览一下教程,可以看出大部分Fragment代码将在后续步骤中删除。如果要清除所有干扰,可以删除与片段相关的所有代码,以及有关选项菜单的位。它可能会解决您的问题,对该教程来说并不重要
答案 2 :(得分:0)
您需要做的是在主要活动中设置意图,然后在此处获取意图,如下所示:
Main_Activity.java下的
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.Main_Activity);
Intent i = new Intent(this,activiteResultats.class); // or getApplicationContext() <= for context
i.putExtras("TagOfMyMessage","MyMessageblablabla");
startActivity(i);
}
在ActivteResultats.java下
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activite_resultats);
Intent i = getIntent();
String message = i.getStringExtras(); // or something like it
// 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);
}
如果你想要一个清晰简单的教程,我建议你检查这个片段,你不需要使用片段:http://www.vogella.com/tutorials/AndroidIntent/article.html