[英]Error occurred in switching view in Fragment Navigation Drawer ,said no view found for fragment PlaceholderFragment
[英]No view found for id for fragment PlaceholderFragment
我创建了一个Main活动,将我发送到ActiviteResultats
活动。
我现在的目标只是在此活动中显示一条消息(来自主消息的消息)。
我遵循了“ 开始另一个活动”教程 。
问题是,当我启动ActiviteResultats
活动时,出现错误:
“找不到片段PlaceholderFragment的ID 0x7f080000 ...........的视图”
...,该应用程序将关闭。
我还不知道如何使用片段,本教程说我不必在此示例中使用它。
我要去哪里错了?
我的代码:
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;
}
}
}
我有同样的问题。 只需删除部分:
if (savedInstanceState == null) {
getFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
那为我解决了。 希望有帮助!
快速浏览本教程可以发现,大多数Fragment代码在以后的步骤中都已删除。 如果您想清除所有干扰,则可以删除与片段相关的所有代码,以及有关选项菜单的内容。 它很可能可以解决您的问题,对本教程而言并不重要
您需要做的是在主要活动中设置意图,然后将其放在此处,如下所示:
在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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.