我正在关注this教程以开始使用android。
在教程中,他们要求您添加以下代码:
/**
* 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_display_message,
container, false);
return rootView;
}
但是这个创建的类看起来好像从未使用过,如果我删除代码,代码似乎工作正常。为什么我需要添加此代码? 他们说你在onCreate中需要它的两个人已经吸了一口气:教程给出了以下内容:
The complete onCreate() method for DisplayMessageActivity now looks like this:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the message from the intent
Intent intent = getIntent();
String message = intent.getStringExtra(MyActivity.EXTRA_MESSAGE);
// 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);
}
在教程之后不再调用它,在删除之前你不能编译代码。
答案 0 :(得分:0)
但是这个创建的类似乎从未使用过
是的,它是在活动的onCreate()
方法中:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_message);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}
您会在PlaceholderFragment
区块内的add()
来电中注意到if
。
如果我删除代码,代码似乎工作正常
然后你有一个不同的onCreate()
方法,或者你从其他地方得到PlaceholderFragment
。
答案 1 :(得分:0)
您需要此代码,因为在本教程中,第二个活动有一个片段。因此,活动的内容由片段的内容决定。你在这段代码中看不到它:
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
片段的内容由fragment_display_message.xml的内容决定。这就是你发布的代码(调用fragment_display_message.xml):
/**
* 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_display_message,
container, false);
return rootView;
}
}
}