我想更新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运行良好且没有错误。我该怎么做?还有其他方法吗?
答案 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(...)中。