2017-04-24 5 views
0

나는 Android Launcher를 구축 중이며 설치된 App을 GridView에 추가하려고 할 때 계속 충돌합니다.Android 런처 빌드

gridview에 설치된 응용 프로그램의 그리드를 추가하려고합니다.

있는 gridview에 대한 나의 코드는

private void loadGridView() { 
    grid = (GridView) getActivity().findViewById(R.id.content); 

    ArrayAdapter<AppDetail> adapter = new ArrayAdapter<AppDetail>(getActivity(), android.R.layout.simple_list_item_1, apps) { 
     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      if (convertView == null) { 
       convertView = getActivity().getLayoutInflater().inflate(R.layout.drawer_item, null); 
      } 

      ImageView appIcon = (ImageView) convertView.findViewById(R.id.icon_image); 
      appIcon.setImageDrawable(apps.get(position).icon); 

      TextView appLabel = (TextView) convertView.findViewById(R.id.icon_text); 
      appLabel.setText(apps.get(position).label); 

      return convertView; 
     } 
    }; 

    grid.setAdapter(adapter); 
} 

감사

편집 1 -을 heres 내 충돌 로그

Process: com.jenovaprojects.ubuntutouchlauncher, PID: 19156 

Theme: themes:{} 

java.lang.NullPointerException: Attempt to invoke virtual method 'void 
android.widget.GridView.setAdapter(android.widget.ListAdapter)' on a 
null object reference 

at 

com.jenovaprojects.ubuntutouchlauncher.homescreenfragments 
.AppsScope.load 
GridView(AppsScope.java:156) 

at 
com.jenovaprojects.ubuntutouchlauncher.homescreenfragments 
.AppsScope.onCr 
eateView(AppsScope.java:109) 

at 
android.support.v4.app.Fragment.performCreateView(Fragment.java:2192) 

at 
android.support.v4.app.FragmentManagerImpl.moveToState 
(FragmentManager.ja 
va:1299) 

at 
android.support.v4.app.FragmentManagerImpl. 
moveFragmentToExpectedState(Fr 
agmentManager.java:1528) 

at 
android.support.v4.app.FragmentManagerImpl. 
moveToState(FragmentManager.ja 
va:1595) 

at 
android.support.v4.app.BackStackRecord.executeOps 
(BackStackRecord.java:75 
8) 

at 
android.support.v4.app.FragmentManagerImpl.executeOps 
(FragmentManager.jav 
a:2363) 

at 
android.support.v4.app.FragmentManagerImpl.executeOpsTogether 
(FragmentMan 
ager.java:2149) 

at 
android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps 
(Fragment 
Manager.java:2103) 

at 
android.support.v4.app.FragmentManagerImpl.execSingleAction 
(FragmentManag 
er.java:1984) 

에서 android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss (BackSta ckRecord.java:626)

at 
android.support.v4.app.FragmentPagerAdapter.finishUpdate 
(FragmentPagerAda 
pter.java:143) 

at android.support.v4.view.ViewPager.populate(ViewPager.java:1268) 

at android.support.v4.view.ViewPager.populate(ViewPager.java:1116) 

at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1642) 

at android.view.View.measure(View.java:18799) 

at 
android.support.constraint.ConstraintLayout.internalMeasureChildren 
(Const 
raintLayout.java:934) 

at 
android.support.constraint.ConstraintLayout.onMeasure 
(ConstraintLayout.ja 
va:973) 

at android.view.View.measure(View.java:18799) 

at android.view.ViewGroup.measureChildWithMargins 
(ViewGroup.java:5951) 

at 
android.support.design.widget.CoordinatorLayout. 
onMeasureChild(Coordinato 
rLayout.java:714) 

at 
android.support.design.widget.HeaderScrollingViewBehavior. 
onMeasureChild(
HeaderScrollingViewBehavior.java:90) 

at 
android.support.design.widget. 
AppBarLayout$ScrollingViewBehavior.onMeasur 
eChild(AppBarLayout.java:1391) 

at 
android.support.design.widget.CoordinatorLayout. 
onMeasure(CoordinatorLayo 
ut.java:784) 

at android.view.View.measure(View.java:18799) 

at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 

at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 

at 
android.support.v7.widget.ContentFrameLayout.onMeasure 
(ContentFrameLayout 
.java:139) 

at android.view.View.measure(View.java:18799) 

at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 

at 
android.widget.LinearLayout.measureChildBeforeLayout 
(LinearLayout.java:14 
58) 

at android.widget.LinearLayout.measureVertical(LinearLayout.java:746) 

at android.widget.LinearLayout.onMeasure(LinearLayout.java:629) 

at android.view.View.measure(View.java:18799) 

at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 

at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 

at android.view.View.measure(View.java:18799) 

at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 

at 
android.widget.LinearLayout.measureChildBeforeLayout 
(LinearLayout.java:14 
58) 

at android.widget.LinearLayout.measureVertical(LinearLayout.java:746) 

at android.widget.LinearLayout.onMeasure(LinearLayout.java:629) 

at android.view.View.measure(View.java:18799) 

at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 

at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 

at 
com.android.internal.policy.PhoneWindow$DecorView.onMeasure 
(PhoneWindow.j 
ava:2899) 

at android.view.View.measure(View.java:18799) 

at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2108) 

at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1224) 

at android.view.ViewRootImpl.performTraversals(ViewRootImpl.ja 
+1

당신이 충돌 로그를 추가 할 수이 여기에 충돌이 발생? –

+0

@ DoronYakovlev-Golani 충돌 로그가 추가되었습니다. 감사합니다. –

답변

1

문제는 (GridView) getActivity().findViewById(R.id.content)이 null을 반환한다는 것입니다.

grid.setAdapter(adapter); 

그리드의 ID 무엇인지 확인 해결하고 같이 넣어 :

grid = (GridView) getActivity().findViewById(R.id.your_grid_view); 
+0

응답 해 주셔서 감사합니다. XML 레이아웃의 내 격자 ID는 '사용중인 콘텐츠'입니다. 그게 나에게 혼란 스럽습니다. –

+0

이 통화를 위해 무엇을 얻고 있는지보십시오. 어쩌면 다른 레이아웃이 있거나 레이아웃을 부 풀리기 전에이 호출을하고 있습니까? –