在onCreate()中更新TextView

时间:2014-07-24 05:29:23

标签: android

我想更新TextView中的onCreate(),以便在出现Activity界面时设置文字,我尝试的是:

Java代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sem_selection);

    TextView T =(TextView)findViewById(R.id.textView1); 
    T.setText("required text"); 

    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment()).commit();
    }
}

但是我在活动开始时收到错误,只要我对此行发表评论:

T.setText("required text");  

App运行良好且没有错误。我该怎么做?还有其他方法吗?

3 个答案:

答案 0 :(得分:1)

您从TextView T引用fragment您将获得null,因为在您的活动中,您正在使用activity_sem_selection并从T布局获取TextView activity_sem_selection。< / p>

因此,在T片段方法中使用onCreateView

例如

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment__sem_selection, container,
                false);

        TextView T =(TextView)rootView.findViewById(R.id.textView1); 
        T.setText("required text"); 

        return rootView;
    }

注意:使用您的片段布局更改fragment__sem_selection

答案 1 :(得分:0)

删除

 if (savedInstanceState == null) {
     getSupportFragmentManager().beginTransaction()
             .add(R.id.container, new PlaceholderFragment()).commit();
   }

答案 2 :(得分:0)

textView1布局中检查activity_sem_selection。否则,您将获得NPE。请尝试在{{text> 1 中放置TextView activity_sem_selection TextView {1}}布局。否则,您可以删除fragment's T的那些分配和引用,并将它们放在{{1}} onCreateView(...)中。