2013-10-15 2 views
1

나는 안드로이드에서 슬라이딩 메뉴를 사용하여 조각을 통해 컨텍스트를 얻는 데 많은 어려움을 겪고 있습니다. 메인 활동 : 슬라이딩 메뉴 조각 getContext return null

slide = new SlidingMenu(this); 
    slide.setMode(SlidingMenu.LEFT); 
    slide.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 
    slide.setFadeDegree(0.35f); 
    slide.setBehindOffsetRes(R.dimen.slidingmenu_offset); 
    slide.setShadowWidthRes(R.dimen.slidingmenu_shadow_width); 
    slide.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); 
    slide.setMenu(R.layout.left_panel); 

    getActionBar().setDisplayHomeAsUpEnabled(true); 

    getFragmentManager().beginTransaction().replace(R.id.leftPanel, new LeftPanel()).commit(); 

내가 사용하여 시도는 :

Context context; 

@Override 
public void onAttach(Activity activity) { 
    super.onAttach(activity); 
    Log.d("Spread",activity.toString()); 
    context = activity; 
} 

this.getActivity() 

항상 을 반환합니다. 뭐가 문제 야?

편집 : 컨텍스트의 사용 :

 com.nostra13.universalimageloader.core.ImageLoader imageLoader = com.nostra13.universalimageloader.core.ImageLoader.getInstance();       \ 
    imageLoader.init(ImageLoaderConfiguration.createDefault(context)); 

    DisplayImageOptions conf = new DisplayImageOptions.Builder().cacheInMemory(true).cacheOnDisc(true).build(); 
     if (((ParseFile)user.get("profilePicture")).getUrl() != null) imageLoader.displayImage(((ParseFile)user.get("profilePicture")).getUrl(), profPic, conf, new ImageLoadingListener() { 
      @Override 
      public void onLoadingStarted(String imageUri, View view) {     
      } 
      @Override 
      public void onLoadingCancelled(String imageUri, View view) { 
      } 
      @Override 
      public void onLoadingFailed(String imageUri, View view,FailReason failReason) { 

      } 
      @Override 
      public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 

      } 
     });*/ 
+0

당신이 getActivity()를 호출하거나 충돌 있다고 컨텍스트를 사용하는 도움이되기를 바랍니다 것입니다 ? – dymmeh

+0

그것이 있습니다. @dymmeh –

+0

단편의 수명주기에서 어디에서 호출 되었습니까? – dymmeh

답변

0

: getFragmentManager().beginTransaction().replace(R.id.leftPanel, new LeftPanel(MainActivity.this)).commit();

LeftPanel{ 

Context context; 

LeftPanel(Context c) 
{ 
     this.context = c; 
} 

} 

당신은이 경우 적절한 컨텍스트를 얻을이 당신의 조각의 코드에서

+0

조각에 생성자를 사용할 수 없다고 생각했습니다. 그러나 억압을 사용하면 모두 괜찮아! 고마워요 @로드 타덴 –

0

그것은 당신이 컨텍스트를 사용하려는 위치에 따라 달라집니다. 실제적으로 해당 컨텍스트를 사용하기 전에 onAttach()이 실행되지 않았을 수 있습니다. 따라서 Context context;이 null로 끝납니다. 몇 가지 추가 코드 없이는 말할 수 없으므로 지금까지 만들 수있는 유일한 가정입니다. 코드 변경에

+0

나는 질문을 편집했다. onAttach()가 호출되었고 활동이 null이 아닙니다. 하지만 그것을 사용할 때 충돌이 발생하고 컨텍스트가 null이라고 알려줍니다. –