0

나는 그것이 내가 무슨 일이 일어나고 있는지 전혀 모르는 원인 NullPointerException이 을 유지 조각의 회 전자로 설정 어댑터에 약간의 문제가, 감사적용 스피너 세트 어댑터는

public class GradeFragment extends ListFragment { 

    private static final String[] LIST = { "102-1", "102-2","103-1","103-2" }; 

    List<String> list = new ArrayList<String>(); 
    private Spinner spinner; 

    @Override  
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     View view = inflater.inflate(R.layout.listview, container, false); 
     spinner = (Spinner) view.findViewById(R.id.spinner); 
     ArrayAdapter<String> arrayadapter = new ArrayAdapter<String>(
       getActivity().getApplicationContext(), 
       android.R.layout.simple_spinner_item, list); 
     arrayadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner.setAdapter(arrayadapter); 
     spinner.setPrompt("select"); 
     spinner.setOnItemSelectedListener(new SpinnerSelectedListener()); 
     return view; 
    } 

    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
    } 

    class SpinnerSelectedListener implements OnItemSelectedListener {  

     public void onItemSelected(AdapterView<?> parents, View v, int position, long arg3) { 
      String str = parents.getItemAtPosition(position).toString(); 
     } 

     public void onNothingSelected(AdapterView<?> arg0) { 
     } 
    } 
} 

도와주세요 :

<Spinner 
    android:id="@+id/spinner" 
    android:layout_width="wrap_content" 
    android:layout_height="40dip" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" /> 

로그 :

05-10 23:21:16.316: E/AndroidRuntime(2436): FATAL EXCEPTION: main 
05-10 23:21:16.316: E/AndroidRuntime(2436): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.grade/com.example.grade.MainActivity}: android.view.InflateException: Binary XML file line #63: Error inflating class fragment 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.os.Looper.loop(Looper.java:137) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.ActivityThread.main(ActivityThread.java:5041) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at java.lang.reflect.Method.invoke(Method.java:511) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at dalvik.system.NativeStart.main(Native Method) 
05-10 23:21:16.316: E/AndroidRuntime(2436): Caused by: android.view.InflateException: Binary XML file line #63: Error inflating class fragment 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at com.example.grade.InFragment.onCreateView(InFragment.java:14) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.Fragment.performCreateView(Fragment.java:1695) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:861) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1137) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.Activity.onCreateView(Activity.java:4717) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.Activity.setContentView(Activity.java:1881) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at com.example.grade.MainActivity.onCreate(MainActivity.java:12) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.Activity.performCreate(Activity.java:5104) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  ... 11 more 
05-10 23:21:16.316: E/AndroidRuntime(2436): Caused by: java.lang.NullPointerException 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at com.example.grade.GradeFragment.onCreateView(GradeFragment.java:77) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.Fragment.performCreateView(Fragment.java:1695) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:861) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1137) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.app.Activity.onCreateView(Activity.java:4717) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 
05-10 23:21:16.316: E/AndroidRuntime(2436):  ... 31 more 
+0

을 정의 팽창하는 것이다 할까? XML을 보여줄 수 있습니까? – N8sBug

+1

ListFragment를 서브 클래 싱 한 다음 R.id.spinner에서 스피너를 가져 오려고합니다. 나는 R.id.spinner의 견해가 있다고 생각하지 않는다. – samosaris

+0

@Samus Arin 안녕하세요, 더 구체적으로 말씀해 주시겠습니까? R.id.spinner의 견해가없는 이유는 무엇입니까? 아니면이 상황을 어떻게 해결할 수 있습니까? thx – dddog

답변

2

Activity가 Fragment에 바인딩되기 전에 호출 될 수있는 onCreateView()의 getActivity(). getApplicationContext()에서 getActivity()가 null인지 확인하십시오. 특히 XML에서 Fragment를 정의 할 때 .

따라서 "어댑터"생성을 onActivityCreated()로 이동하십시오. 당신이 ListFragment를 sublcassing 이후 모든

+1

선언을 onActivityCreated로 옮기는 것이 나에게 옳은 일이었습니다! 감사. –

0

먼저, 당신은

View view = inflater.inflate(R.layout.listview, container, false); 

메모를보기를 팽창 할, 그래서 라인을 제거하지 마십시오 : 당신은 당신의 목록보기에 핸들러를하고자했다면, 당신에게 ' d 간단히 수행

View view = findViewById(R.id.listview); 

그러나이보기에는 회 전자가 없으므로 여기서 도움이되지 않습니다.

당신이 "FragmentList"보기에 스피너를 추가 할 필요가

, 하나의 방법은 그것이 스피너는 XML 파일에서 어떻게

View view = inflater.inflate(R.layout.MY_SPINNER_LAYOUT, container, this); 
관련 문제