dialogic-自定义的Dial显示不出来,求解答!

问题描述

自定义的Dial显示不出来,求解答!

这是一个类似于京东客户端首页的界面。

需求: 对用户的账号进行判断,当它的账号被封禁时,用户点击这个页面的任意礼品类型列表,
会弹出一个自定义的Dialog,呈现给用户,账号已被封禁。
问题:现在用户的状态是冻结。。。自定义的Dialog始终弹不出来。(自定义的Dialog没有问题,已Demo测试过, 我怀疑是不是这个类的调用的问题)
求大神解答 !

/**

  • 礼品部分activity
    */
    public class GiftActivity extends BaseActivity {

    /** 礼品类型列表 */
    private final String giftListClass = GiftListFragment.class.getName();
    /** 礼品详情 界面 */
    private final String giftDetailClass = GiftDetailFragment.class.getName();
    /** 礼品兑换界面 */
    private final String giftChargeClass = GiftChargeFragment.class.getName();
    private Fragment mFragment;
    protected static FragmentActivity mmContext;
    private static Handler mHandler;
    private static CustomWebView mWebView;
    @Override
    protected void onCreate(Bundle arg0) {
            super.onCreate(arg0);
            setContentView(R.layout.layout_gift);
            initVariable();
    }
    
    /**
     * 初始化变量
     */
    private void initVariable() {
            int type = getIntent().getIntExtra("type", 0);
            switch (type) {
            case 0:
                    initView(giftListClass, null);
                    break;
            case 1:
                    initView(giftDetailClass, getIntent().getExtras());
                    break;
            case 2:
                    initView(giftChargeClass, getIntent().getExtras());
                    break;
            default:
                    break;
            }
    }
    
    /**
     * 初始化布局
     */
    private void initView(String className, Bundle bundle) {
            if (null != mContext) {
                    FragmentTransaction ft = getSupportFragmentManager()
                                    .beginTransaction();
                    mFragment = Fragment.instantiate(mContext, className, bundle);
                    ft.add(R.id.layout_gift_fragment_container, mFragment, className);
                    ft.commit();
            }
    }
    
    /**
     * 礼品列表
     *
     * @param context
     */
    public static void start4GiftList(Context context) {
            start(context, 0, null);
    }
    
    /**
     * 礼品详情
     *
     * @param context
     */
    public static void start4GiftDetail(final Context context,final GiftType value) {
            // 增加一个判断的方式,当用户未登陆的情况下,进一步点击商品时调出登陆层
            if (!HZApplication.get().isLogin()) {
                    Intent intent = new Intent(context, AccountActivity.class);
                    context.startActivity(intent);
    
            } else {
                    // 当出现异常订单时,商品不可进一步兑换,出现封禁的状态,需要申请解禁。
                    NetworkController.getInstance(HZApplication.get()).getUserinfo(
                                    new NetworkCallBack() {
    
                                            @Override
                                            public void response(String response) {
                                                    UserInfo mUserInfo = UserInfo.parser(response);
    
                                                    int mstatus = mUserInfo.status;
    
                                                    if (0 == mstatus) {
                                                            // 封禁
                                                            //banned();
                                                    } else if (1 == mstatus) {
                                                            // 正常 不做操作
                                                            Bundle bundle = new Bundle();
                                                            bundle.putSerializable("data", value);
                                                            start(context, 1, bundle);
    
                                                    } else if (2 == mstatus) {
                                                            // 1、冻结
                                                            Freeze();
                                                    }
                                            }
                                            @Override
                                            public void error(int errorCode, String errorLog) {
    
                                            }
                                    });
    
            }
    }
    
    /**
     * 礼品兑换
     *
     * @param context
     */
    public static void start4GiftCharge(Context context, GiftType value) {
            Bundle bundle = new Bundle();
            bundle.putSerializable("data", value);
            start(context, 2, bundle);
    
    }
    
    /**
     * 冻结状态
     */
    private static void Freeze() {
    
            CustomDialog.Builder builder = new CustomDialog.Builder(mmContext);
            builder.setTitle("兑换冻结");
            builder.setMessage("您的账号存在获取收入的异常操作,兑换功能被暂时冻结,冻结期间,获取经验值不受影响");
            builder.setPositiveButton("申请解冻", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                            //设置你的操作事项
                            //Toast.makeText(getApplicationContext(),"Hi", Toast.LENGTH_SHORT).show();
    
                    }
            });
    
            builder.setNegativeButton("了解规则",
                            new android.content.DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int which) {
                                            //Toast.makeText(getApplicationContext(),"Hi。。。。。", Toast.LENGTH_SHORT).show();
                                    }
                            });        
    
            builder.create().show();
    
    }
    
    /**
     * 启动
     *
     * @param context
     *            上下文
     * @param type
     *            显示类型 0==礼品列表 1==礼品详情 2==礼品兑换 3==
     */
    private static void start(Context context, int type, Bundle bundle) {
            Intent intent = new Intent(context, GiftActivity.class);
            intent.putExtra("type", type);
            if (null != bundle) {
                    intent.putExtras(bundle);
            }
            context.startActivity(intent);
    }
    

    }

解决方案

查看一下mmContext,它是否正确指向了UI Activity?(你的代码中,前面成员声明是mmContext,但初始化布局那里是mContext。但我估计是粘代码时候的问题,不然这会报error)
另外可以试着将dialog的调用放到异步任务中执行。

解决方案二:

这个里面的mmContext是我自己定义出来的,mContext是基类的,你看看,我也纳闷,不知道怎么做。。。反正没报错。

  • 应用程序Activity的基类
    */
    public class BaseActivity extends FragmentActivity {
    private int currentApiVersion = 0;
    protected boolean isLoading = false;
    protected FragmentActivity mContext = this;
    protected boolean enabled = false;

    @Override
    protected void onCreate(Bundle arg0) {
    super.onCreate(arg0);
    currentApiVersion = android.os.Build.VERSION.SDK_INT;
    HZApplication.get().addActivity(this);
    }

=========================相当于我这个类继承BaseActivity=====================
*/
public class GiftActivity extends BaseActivity {

/** 礼品类型列表 */
private final String giftListClass = GiftListFragment.class.getName();
/** 礼品详情 界面 */
private final String giftDetailClass = GiftDetailFragment.class.getName();
/** 礼品兑换界面 */
private final String giftChargeClass = GiftChargeFragment.class.getName();
private Fragment mFragment;
protected static FragmentActivity mmContext;

private static Handler mHandler;

private static CustomWebView mWebView;

@Override
protected void onCreate(Bundle arg0) {
    super.onCreate(arg0);
    setContentView(R.layout.layout_gift);
    initVariable();
}

麻烦你再帮我分析一下context.谢谢!

时间: 2024-11-05 14:57:53

dialogic-自定义的Dial显示不出来,求解答!的相关文章

自定义的cell中,button不显示图片文字 求大神告诉我下

问题描述 自定义的cell中,button不显示图片文字 求大神告诉我下 这是自定义的cell - (UIButton *)categoryBtn{ if (!_categoryBtn) { _categoryBtn = [[UIButton alloc]init]; _categoryBtn.backgroundColor = [UIColor yellowColor]; _categoryBtn.titleLabel.text = @""111111""; [_

progressbar-android动态创建progressBar自定义样式不显示。

问题描述 android动态创建progressBar自定义样式不显示. 我自定义progressBar样式的时候,在xml布局文件里用style=自己在styles文件中定义的style可以实现. 用程序动态创建的时候,progressbar = new progressbar(this)也可以实现,但没法自定义,是使用的默认的. 如果用progressbar = new progressbar(this,null,style1)就实现不了,啥都不显示,该怎么办呢? 解决方案 好吧,没人回答,

ios-导航条的自定义返回键显示不对

问题描述 导航条的自定义返回键显示不对 设置自定义的返回键,没显示出预期的效果.back键被拉长了,而且button内没有文本时,还是会显示back字符. 解决方案 首先看不到你提供的图片.但根据你的描述大体问题出在以下几个方面:1.back键被拉长. 有可能是你设置的Frame的size不是自定义键的真实size.被拉长,显然是width超出了实际的尺寸.2.button内没有文本时,还是会显示back字符.如果是用的UIButton作为自定义键时,检查是否设置了button的title. [

C#webservice 不显示 本人新手 求指教

问题描述 C#webservice 不显示 本人新手 求指教 解决方案 你在本机调试正常么?怎么部署到iis上的,ip和端口以及虚拟目录是否正确.

android webview加载服务器上js自动轮播图片不显示问题,求大神帮忙

问题描述 android webview加载服务器上js自动轮播图片不显示问题,求大神帮忙 这个是手机版网站地址:m.daxuepai.com.cn 正常打开首页应该有轮播图片,如下图: 轮播功能是做web前端的人用js写的. 以下是我android中的代码,主要就是用webview加载了相应地址的资源,但是我加载了后那个轮播图就没有显示,代码如下: package com.example.testwebkit; import android.app.Activity; import andro

IAR调试时变量值错误,显示数据不了解,求解答

问题描述 IAR调试时变量值错误,显示数据不了解,求解答 这是一个图像采集程序,V_cnt是一个计数变量,但是现在,显示的值却是这个样子,不知道代表什么含义求解答

android自定义textview怎么显示字体库图标

问题描述 android自定义textview怎么显示字体库图标 androd自定义textview怎么显示字体库图标,就是iconfont各位帮帮忙 解决方案 请参考 这篇文章http://blog.csdn.net/u013401219/article/details/46427503

Spring mvc无法跳转 显示404 新手求问配置是否有问题~

问题描述 Spring mvc无法跳转 显示404 新手求问配置是否有问题~ springmvc-servlet web.xml HelloController index.jsp hello.jsp 解决方案 你可以把你的错误日志贴上,不然我们没法给你看哪里出错! 解决方案二: bean name=''/hello.do" 是什么鬼,用法都错了,,在方法上@requestMapping("hello.do") 解决方案三: @RequestMapping(value=&qu

鼠标点击按钮 隐藏这个按钮再点击就显示这个按钮 求这个html代码

问题描述 鼠标点击按钮 隐藏这个按钮再点击就显示这个按钮 求这个html代码 鼠标点击按钮 隐藏这个按钮再点击就显示这个按钮 求这个html代码 我是初学者 求大神告诉我具体原代码 谢谢 解决方案 使用请采纳 解决方案二: 用jquery隐藏显示按钮,代码更简洁.兼容性更好. $(function(){ $("button").click(function(){ $(this).toggle();//显示.隐藏 }); }); http://www.w3school.com.cn/jq