Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dialogbox在android姜饼版本中的.show()上出现错误_Android_Actionbarsherlock_Android Dialogfragment_Android 2.3 Gingerbread_Fragmentmanager - Fatal编程技术网

Dialogbox在android姜饼版本中的.show()上出现错误

Dialogbox在android姜饼版本中的.show()上出现错误,android,actionbarsherlock,android-dialogfragment,android-2.3-gingerbread,fragmentmanager,Android,Actionbarsherlock,Android Dialogfragment,Android 2.3 Gingerbread,Fragmentmanager,我必须为姜饼版本实现多选择对话框 我的主要活动EventCreateActivity扩展了名为BaseActivity的类,该类扩展了SherlockActivity 主要活动 public class EventCreateActivity extends BaseActivity implements OfferDialogFragment.OfferDialogListner{ 在主活动中,我调用了如下对话框,但它在newFragment.show方法上给出了一个错误,该方法名为“类型

我必须为姜饼版本实现多选择对话框

我的主要活动EventCreateActivity扩展了名为BaseActivity的类,该类扩展了SherlockActivity

主要活动

public class EventCreateActivity extends BaseActivity implements OfferDialogFragment.OfferDialogListner{ 
在主活动中,我调用了如下对话框,但它在newFragment.show方法上给出了一个错误,该方法名为“类型EventCreateActivity的getSupportFragmentManager()方法未定义”。OfferDialogFragment类扩展了dialogFragment类

DialogFragment newFragment = new OfferDialogFragment();     
Bundle databndle = new Bundle();
boolean offerArr [] = vip.getBooleanOffers(include_offer.getText().toString());
databndle.putBooleanArray("BOOL_OFFERS_ARRAY", offerArr);
newFragment.setArguments(databndle);                        
newFragment.show(getSupportFragmentManager(), "OfferDialogFragment");
如果有人能帮我解决这个问题,那就太糟糕了。提前谢谢

编辑01:以下是EventCreateActivity的完整代码

public class EventCreateActivity extends BaseActivity implements  OfferDialogFragment.OfferDialogListner{

@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case DATE_DIALOG_ID:
       // set date picker as current date
       return new DatePickerDialog(this, datePickerListener, 
                     year, month,day);         
    case OFFER_DIALOG_ID: 

        DialogFragment newFragment = new OfferDialogFragment();

        Bundle databndle = new Bundle();
        boolean offerArr [] = vip.getBooleanOffers(include_offer.getText().toString());
        databndle.putBooleanArray("BOOL_OFFERS_ARRAY", offerArr);
        newFragment.setArguments(databndle);            

        newFragment.show(getFragmentManager(), "OfferDialogFragment");

        return onCreateDialog(id);
    }
}

//offerDiagofFragment类

public class OfferDialogFragment extends SherlockDialogFragment{

public interface OfferDialogListner{
    public void onDialogPositiveClick(DialogFragment dialog, ArrayList<Integer> selected);
    public void onDialogNegativeClick(DialogFragment dialog);
}

OfferDialogListner mOfferDialogListner;

@Override
public void onAttach(android.app.Activity activity) {
    super.onAttach(activity);

    try{
        mOfferDialogListner = (OfferDialogListner) activity;
    }catch(ClassCastException e){
        throw new ClassCastException(activity.toString() + " must implement OfferDialogListner");
    }
};

@Override   
public Dialog onCreateDialog(Bundle savedInstanceState){

    final ArrayList<Integer> mSelectedOfferItems = new ArrayList<Integer>();        

    boolean [] selectOfferItems = getArguments().getBooleanArray("BOOL_OFFERS_ARRAY");
        // add array data to arrayalist
    if(selectOfferItems[0]){                
        mSelectedOfferItems.add(0);
    }
    if(selectOfferItems[1]){                
        mSelectedOfferItems.add(1);
    }
    if(selectOfferItems[2]){                
        mSelectedOfferItems.add(2);
    }           
    if(selectOfferItems[3]){                
        mSelectedOfferItems.add(3);
    }   

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    builder.setTitle(R.string.artist_offer_tv)
            .setMultiChoiceItems(R.array.offer_items, selectOfferItems, new DialogInterface.OnMultiChoiceClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which, boolean isChecked) {

                    if(isChecked){
                        mSelectedOfferItems.add(which);                         

                    }else{
                        mSelectedOfferItems.remove(Integer.valueOf(which));
                    }

                }
            })
            .setPositiveButton(R.string.string_ok , new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {

                    Integer[] selected = mSelectedOfferItems.toArray(new Integer[mSelectedOfferItems.size()]);


                               mOfferDialogListner.onDialogPositiveClick(OfferDialogFragment.this, mSelectedOfferItems);
                }
            })

            .setNegativeButton(R.string.string_cancel, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {

                    mOfferDialogListner.onDialogNegativeClick(OfferDialogFragment.this);
                }
            });

    return builder.create();
}
FerdialogFragment的公共类扩展了SherlockDialogFragment{ FerdialGlistner的公共接口{ 公共无效onDialogPositiveClick(DialogFragment对话框,选中ArrayList); 公共无效onDialogNegativeClick(DialogFragment对话框); } OfferDialogListner; @凌驾 public void-onAttach(android.app.Activity){ 超级转速计(活动); 试一试{ mOfferDialogListner=(OfferDialogGlistner)活动; }catch(ClassCastException e){ 抛出新的ClassCastException(activity.toString()+“必须实现OfferDialogListner”); } }; @凌驾 创建对话框上的公共对话框(Bundle savedInstanceState){ 最终ArrayList mSelectedOfferItems=新ArrayList(); boolean[]selectOfferItems=getArguments().getBooleanArray(“BOOL_提供_数组”); //将数组数据添加到ArrayList 如果(selectOfferItems[0]){ mSelectedOfferItems.add(0); } if(selectOfferItems[1]){ mSelectedOfferItems.add(1); } if(selectOfferItems[2]){ mSelectedOfferItems.add(2); } if(selectOfferItems[3]){ mSelectedOfferItems.添加(3); } AlertDialog.Builder=新建AlertDialog.Builder(getActivity()); builder.setTitle(R.string.artist\u offer\u tv) .setMultiChoiceItems(R.array.offer_项,selectOfferItems,new DialogInterface.OnMultiChoiceClickListener(){ @凌驾 public void onClick(DialogInterface dialog,int,其中布尔值被选中){ 如果(已检查){ mSelectedOfferItems.add(其中); }否则{ mSelectedOfferItems.remove(Integer.valueOf(which)); } } }) .setPositiveButton(R.string.string_ok,新建DialogInterface.OnClickListener(){ @凌驾 public void onClick(DialogInterface dialog,int which){ 整数[]selected=mSelectedOfferItems.toArray(新整数[mSelectedOfferItems.size()]); mOfferDialogListner.onDialogPositiveClick(OfferDialogFragment.this,mSelectedOfferItems); } }) .setNegativeButton(R.string.string_cancel,新建DialogInterface.OnClickListener(){ @凌驾 public void onClick(DialogInterface dialog,int which){ mOfferDialogListner.onDialogNegativeClick(OfferDialogFragment.this); } }); 返回builder.create(); }
}
getSupportFragmentManager
不存在于
SherlockActivity
中-您想改用
getFragmentManager

你好,Dave,是的。然后,错误显示“DialogFragment类型中的方法show(FragmentManager,String)不适用于参数(FragmentManager,String)”您的对话框是从
SherlockDialogFragment
扩展的吗?否。它扩展了DialogFragment,即使更改为SherlockDialogFragment,错误仍然存在。它说“类型EventCreateActivity的getSupportFragmentManager()方法未定义”哇,是的-因为您使用的是片段,所以您的活动应该从
SherlockFragmentActivity
扩展!(我用夏洛克已经有一段时间了)还没有成功。我会把整个代码,有时间它会帮助你的家伙解决这个问题。