最近项目中想简单实现一个两个项目的Dialog,却一直报如题的错误。
起因是这样的:
写了个弹出以文本作为内容的AlertDialog类,想做一个简单弹窗选择。
public class SimpleDialogUtils {
public static void showSimpleChooseDialog(int itemsId, DialogInterface.OnClickListener listener) {
AlertDialog dialog = new AlertDialog
.Builder(Utils.getApp())
.setItems(itemsId, listener)
.create();
dialog.show();
}
}
注意这里:.Builder(Utils.getApp()) ,Bulider需要传入一个context作为参数。
这里我自作聪明,把全局的Application传进去了。这里就导致了问题。
使用时,如下进行调用:
public class EditProfileActivity extends BaseActivity {
@Override
protected int initLayoutRes() {
return R.layout.activity_edit_my_profile;
}
@OnClick(R.id.btn_change_pic)
void showChoose(){
SimpleDialogUtils.showSimpleChooseDialog(R.array.pic_choose
, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
}
}
运行,crash~
看log提示资源未找到,还以为values目录下的arrays.xml中的文本资源有问题,后来改为用写死