2014-03-29 14 views
0

下面的代码:为什么在调用setContentView()之后无法访问我的视图?

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    Intent intent = getIntent(); 
    String message = "Email: \n" +intent.getStringExtra(MainActivity.ACCOUNT_EMAIL); 
    setContentView(R.layout.activity_display_message); 

    TextView textView = (TextView) findViewById(R.id.display_info); 
    //textView.setText(message); 

    if (savedInstanceState == null) { 
     getSupportFragmentManager().beginTransaction() 
       .add(R.id.container, new PlaceholderFragment()).commit(); 
    } 
} 
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_display_message, 
        container, false); 
      return rootView; 
     } 
    } 

XML中的ID名是绝对正确的,但由于某种原因,这个注释行总是返回null。当我有这条评论的片段打开与文本视图那里(我有一些占位符文本)。我无法从代码中访问这个东西。

+0

我已经删除了您的问题中的所有不相关的文本。看来你几乎没有提供任何信息。 “无法访问”是什么意思?看起来像你唯一的问题是'textView.setText(message);'返回0。 – Mark

回答

1

你说片段与TextView一起显示,但你试图从你的Activity(和Activity的布局)引用TextView。

没有看到布局,我猜TextView是在fragment_display_message.xml(而不是activity_display_message.xml)。

看来你想要将访问TextView的逻辑移动到你的Fragment的onCreateView()中。请记住,您可能希望使用Fragment参数将消息设置为直接从Activity的意图获取它将不再起作用。

相关问题