我正在尝试在framgment中添加gridview。 这是Display.java中有错误的代码
53-GridView gridview = (GridView) findViewById(R.id.gridview);
54-
55-gridview.setAdapter(new ImageAdapter(Tab1Fragment.getContext(null)));
我猜错误是因为我需要添加其他活动的上下文。
Tab1Fragment.java:
public class Tab1Fragment extends Fragment {
private static Context mContext;
public Tab1Fragment(Context c)
{
mContext = c;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View V = inflater.inflate(R.layout.tab1_view, container, false);
return V;
}
public static Context getContext(Context c) {
c = mContext;
return c;
}
}
这是错误:
05-14 18:33:34.752: E/AndroidRuntime(28061): at dalvik.system.NativeStart.main(Native Method)
05-14 18:33:34.752: E/AndroidRuntime(28061): Caused by: java.lang.NullPointerException
05-14 18:33:34.752: E/AndroidRuntime(28061): at com.example.sqlfirst.Display.onCreate(Display.java:55)
05-14 18:33:34.752: E/AndroidRuntime(28061): at android.app.Activity.performCreate(Activity.java:5389)
05-14 18:33:34.752: E/AndroidRuntime(28061): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
05-14 18:33:34.752: E/AndroidRuntime(28061): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2256)
答案 0 :(得分:0)
您可以在
中使用Tab1Fragment.getActivity().getApplicationContext()
gridview.setAdapter(new ImageAdapter(Tab1Fragment.getActivity().getApplicationContext()));
...片段附加到活动后。
首先检查Tab1Fragment.getActivity()
是null
。
答案 1 :(得分:0)
您不应该将Application上下文与Views绑定,这会使垃圾收集变得困难,因为应用程序上下文不允许死对象被垃圾回收。我认为你要添加网格视图的片段, 假设
活动A
将保存网格视图F
的片段A - > F --->网格视图
然后F.getActivity()
足以完成这项工作。