0

Androidでスライドメニューを使用していますが、フラグメントを介してコンテキストを取得するのに多くの問題があります。主な活動:

    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()

常にnullを返します。ここで何が問題なのですか?

編集:コンテキストの使用:

        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) {

            }
        });*/
4

2 に答える 2

0

コードの変更について:getFragmentManager().beginTransaction().replace(R.id.leftPanel, new LeftPanel(MainActivity.this)).commit();

LeftPanel{

Context  context;

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

}

この場合、適切なコンテキストが得られます。これが役立つことを願っています

于 2013-10-16T07:55:36.877 に答える
0

コンテキストを使用しようとしている場所によって異なります。onAttach()実際にそのコンテキストを試して使用する前に、 が起動していない可能性があります。したがって、あなたContext context;はnullになります。追加のコードがないとわかりにくいため、これまでのところ、これが唯一の仮定です。

于 2013-10-15T20:23:22.570 に答える