【发布时间】:2017-08-25 17:18:59
【问题描述】:
我正在开发一个 android 应用程序,我想在片段内使用工具栏和导航抽屉。我创建了一个名为 Supportclass 的内部类,然后在 onCreateView 方法中使用了名为 setUptoolbar 的方法,但出现异常错误。 你觉得我该怎么做?提前谢谢你,对不起我的英语不好。 :)
片段代码:
public class FragmentVRList extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_main,container,false);
View cardView = inflater.inflate(R.layout.card_vr,container,false);
Generator generator = new Generator();
RecyclerView recyclerView = (RecyclerView)rootView.findViewById(R.id.recycle);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
AdapterVRList adapter = new AdapterVRList(getActivity(), Generator.getData());
recyclerView.setAdapter(adapter);
recyclerView.setNestedScrollingEnabled(false);
SupportClass supportClass = new SupportClass();
supportClass.setUptoolbar(getActivity(),rootView);
final TeacherNet teacher = new TeacherNet(getActivity());
int Length = Generator.getData().size();
final JSONObject object = new JSONObject();
for (int position = 1;position<Length;position++){
switch (position){
case 1:
cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
object.put("vrcode","1");
teacher.SelectContent(object);
} catch (JSONException e) {
e.printStackTrace();
}
}
});
case 2:
cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
object.put("vrcode","2");
teacher.SelectContent(object);
} catch (JSONException e) {
e.printStackTrace();
}
}
});
case 3:
cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
object.put("vrcode","3");
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}
}
return rootView;
}
private class SupportClass extends AppCompatActivity{
public void setUptoolbar(Activity activity, View view){
Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawerLayout = (DrawerLayout) view.findViewById(R.id.drawer);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(activity,drawerLayout,toolbar,0,0);
toggle.syncState();
drawerLayout.addDrawerListener(toggle);
}
}
}
这是错误: java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 'android.view.Window$Callback android.view.Window.getCallback()'
【问题讨论】:
-
片段内的活动!天哪
-
@BirendraSingh 你是什么意思?它不是一个 Activity,它只是一个类,它扩展了 AppCompatAcivity 只是为了使用 setSupportActionBar 方法。
标签: android android-fragments material-design