繁体   English   中英

找不到片段PlaceholderFragment的ID的视图

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM