2014-03-29 19 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的意圖獲取它將不再起作用。

相關問題