1

最初のアプリを開発する方法を調べようとしていますが、このコードをコンパイルしようとすると、Eclipse から「コンストラクターの意図が未定義です」というエラーが返されます。

package com.baruckis.SlidingMenuImplementation.FromClass;
import android.app.Activity;
import android.content.Intent;
import android.widget.Toast;

import com.baruckis.SlidingMenuImplementation.R;
import com.baruckis.SlidingMenuImplementation.SlidingMenuListItem;
import com.baruckis.SlidingMenuImplementation.prova;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

public class SlidingMenuBuilderBase {
    protected Activity activity;
protected SlidingMenu menu = null;

public void createSlidingMenu(Activity activity) {
    this.activity = activity;
    menu = new SlidingMenu(activity);
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    menu.setShadowWidthRes(R.dimen.sliding_menu_shadow_width);
    menu.setShadowDrawable(R.drawable.sliding_menu_shadow);
    menu.setBehindOffsetRes(R.dimen.sliding_menu_offset);
    menu.setFadeDegree(0.35f);
    menu.attachToActivity(activity, SlidingMenu.SLIDING_WINDOW);
    menu.setMenu(R.layout.sliding_menu_frame);

    SlidingMenuListFragment slidingMenuListFragment = new SlidingMenuListFragment();
    slidingMenuListFragment.setMenuBuilder(this);


    activity.getFragmentManager().beginTransaction()
            .replace(R.id.sliding_menu_frame, slidingMenuListFragment)
            .commit();
}

public SlidingMenu getSlidingMenu() {
    return menu;
}


public void onListItemClick(SlidingMenuListItem selectedSlidingMenuListItem) {
    CharSequence text;
    switch (selectedSlidingMenuListItem.Id) {
    case R.slidingmenu.list_item_municipio_id:
    Intent ii = new Intent(this, prova.class);
    startActivity(ii);
    finish();

        break;
    case R.slidingmenu.list_item_basic_id:
        text = "Clicked item “"
                + selectedSlidingMenuListItem.Name
                + "”. "
                + activity
                        .getString(R.string.toast_sliding_menu_custom_action);
        Toast.makeText(activity, text, Toast.LENGTH_LONG).show();
        break;
    default:
        text = "Clicked item. "
                + activity
                        .getString(R.string.toast_sliding_menu_no_action_default);
        Toast.makeText(activity, text, Toast.LENGTH_LONG).show();
        break;
    }
}

}

すでに他のスレッドで解決策を探してみましたが、うまくいく方法が見つかりませんでした!

4

2 に答える 2

2

変化する

Intent ii = new Intent(this, prova.class);

Intent ii = new Intent(activity, prova.class);

Activity Contextを開始する必要があり、Activityクラスが拡張されないため、渡すパラメーターActivityを使用する必要がありますactivity

于 2013-07-02T20:37:16.493 に答える
1

それは、のようにでSlidingMenuBuilderBaseはないからです。データメンバーでインスタンスを保持しているため、コンストラクターで.ContextActivityActivityactivitythisIntentactivity

于 2013-07-02T20:36:22.683 に答える