fragment
은 navigation bar
입니다. "activity_spar"fragment
직전 프래그먼트에있을 때 fragment
로드가 시작됩니다. 그러나 나는 추적 할 수없는 nullpointer exception
을 던졌습니다.조각이 널 포인터를 던졌습니다
는이 코드를 가지고있는, line 180
에 말한다 :
my_layout.addView(cb,params);
debugger
내 PARAMS가 null없는 내 CB 중 하나 아니라는 것을 보여 주었다 통해 실행. 누구든지이 추적 방법을 설명 할 수 있습니까?
06-17 19:38:21.431: E/AndroidRuntime(25923): FATAL EXCEPTION: main
06-17 19:38:21.431: E/AndroidRuntime(25923): Process: info.androidhive.jsonparsen, PID: 25923
06-17 19:38:21.431: E/AndroidRuntime(25923): java.lang.NullPointerException
06-17 19:38:21.431: E/AndroidRuntime(25923): at info.androidhive.jsonparsen.activity_Spar$downloadJsonitems.onPostExecute(activity_Spar.java:180)
06-17 19:38:21.431: E/AndroidRuntime(25923): at info.androidhive.jsonparsen.activity_Spar$downloadJsonitems.onPostExecute(activity_Spar.java:1)
06-17 19:38:21.431: E/AndroidRuntime(25923): at android.os.AsyncTask.finish(AsyncTask.java:632)
06-17 19:38:21.431: E/AndroidRuntime(25923): at android.os.AsyncTask.access$600(AsyncTask.java:177)
06-17 19:38:21.431: E/AndroidRuntime(25923): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
06-17 19:38:21.431: E/AndroidRuntime(25923): at android.os.Handler.dispatchMessage(Handler.java:102)
06-17 19:38:21.431: E/AndroidRuntime(25923): at android.os.Looper.loop(Looper.java:136)
06-17 19:38:21.431: E/AndroidRuntime(25923): at android.app.ActivityThread.main(ActivityThread.java:5103)
06-17 19:38:21.431: E/AndroidRuntime(25923): at java.lang.reflect.Method.invokeNative(Native Method)
06-17 19:38:21.431: E/AndroidRuntime(25923): at java.lang.reflect.Method.invoke(Method.java:515)
06-17 19:38:21.431: E/AndroidRuntime(25923): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
06-17 19:38:21.431: E/AndroidRuntime(25923): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)
06-17 19:38:21.431: E/AndroidRuntime(25923): at dalvik.system.NativeStart.main(Native Method)
//AsyncTask<Void,Void,Void>
LinearLayout my_layout = (LinearLayout) getActivity().findViewById(R.id.sparstoretest);
LinearLayout my_checked_layout = (LinearLayout) getActivity().findViewById(R.id.sparstorechecked);
LinearLayout ImageView = (LinearLayout) getActivity().findViewById(R.id.sparstoresettings);
LinearLayout ImageView2 = (LinearLayout) getActivity().findViewById(R.id.sparstoresettings2);
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.topMargin=2;
for (int n = 0; n < listitems.size(); n++) {
CheckBox cb = new CheckBox(getActivity());
cb.setId(Integer.parseInt(listitems.get(n).get("cbid")));
cb.setText(listitems.get(n).get("product"));
cb.setTextColor(Color.BLACK);
ImageView image = new ImageView(getActivity());
image.setImageResource(R.drawable.ic_action_discard);
image.setId(Integer.parseInt(listitems.get(n).get("cbid")));
image.setLayoutParams(params);
image.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
showpopup(v.getId());
}
});
Log.i("activity spar", "storename" + storename);
if (listitems.get(n).get("state").toString().equals("1") && listitems.get(n).get("store").toString().equals(storename)) {
cb.setChecked(true);
my_checked_layout.addView(cb,params);
cb.setBackgroundColor(Color.argb(255, 184, 239, 220));
cb.setTextColor(Color.rgb(255, 255, 255));
image.setBackgroundColor(Color.rgb(184,239,220));
ImageView2.addView(image);
} else if (listitems.get(n).get("store").toString().equals(storename)){
cb.setChecked(false);
cb.setBackgroundColor(Color.argb(255, 19, 202, 140));
cb.setTextColor(Color.rgb(255, 255, 255));
my_layout.addView(cb,params);
image.setBackgroundColor(Color.rgb(19,202,140));
ImageView.addView(image);
}
OnResume 전에 이것을 호출 했습니까? my_layout은 null 일 수 있습니다. – Codeman
My_layout은이 코드가있는 onPreExecute와 동일한 클래스로 설정됩니다. – user3749616
** 당신은 ** 아무것도 ** null이 아니므로, 문제가 어디 있는지 추측 할 수 있습니까? 뭔가 분명히 null입니다, 당신은 단지 그것을 볼 수 없습니다 (또는 당신이 통제 할 수없는 코드 내에서 일어나는 것입니다), 그러나 한 줄의 코드로, 우리는 정말로 말할 수 없습니다 :) –