今天的任务为创建NerdLauncher项目,代码如下:
NerdLauncherActivity.java:
package com.bignerdranch.android.nerdlauncher; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class NerdLauncherFragment extends Fragment { private RecyclerView mRecyclerView; public static NerdLauncherFragment newInstance(){ return new NerdLauncherFragment(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View v=inflater.inflate(R.layout.fragment_nerd_launcher,container,false); mRecyclerView=(RecyclerView)v.findViewById(R.id.app_recycler_view); mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); return v; } }
fragment_nerd_launcher.xml:
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/app_recycler_view" android:layout_width="match_parent" android:layout_height="match_parent"/>
NerdLauncherFragment.java:
package com.bignerdranch.android.nerdlauncher; import android.support.v4.app.Fragment; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class NerdLauncherActivity extends SingleFragmentActivity { @Override protected Fragment createFragment() { return NerdLauncherFragment.newInstance(); } }
activity_fragment.xml:
<FrameLayout android:id="@+id/fragment_container" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" />
SingleFragmentActivity.java:
package com.bignerdranch.android.nerdlauncher; import android.os.Bundle; import android.support.annotation.LayoutRes; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v7.app.AppCompatActivity; public abstract class SingleFragmentActivity extends AppCompatActivity { protected abstract Fragment createFragment(); @LayoutRes protected int getLayoutResId() { return R.layout.activity_fragment; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(getLayoutResId()); FragmentManager fm = getSupportFragmentManager(); Fragment fragment = fm.findFragmentById(R.id.fragment_container); if (fragment == null) { fragment = createFragment(); fm.beginTransaction() .add(R.id.fragment_container, fragment) .commit(); } } }
截图如下: