请教高手android开发中progressdialog按确定按钮时不关闭的一个问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教高手android开发中progressdialog按确定按钮时不关闭的一个问题?相关的知识,希望对你有一定的参考价值。

progressdialog可以setButton产生按钮,但是点击按钮就会关闭progressdialog,有什么办法可以让progressdialog不关闭?

LayoutInflater mInflater = LayoutInflater.from(MainView.this);
View view = mInflater.inflate(R.layout.dialog, null);  
final Dialog dialog =  new AlertDialog.Builder(MainView.this)
            .setTitle("标题")
            .setView(view)
            .create(); 
            dialog.setCancelable(false);
            dialog.show();

这样就建了一个没有按钮的dialog 你关不掉的

除非用dialog.cancle()关

但是现在dialog里还没滚动进度条,看到上面的R.layout.dialog没,这就是你dialog的布局,里面加个圆形progressbar就行了,或者直接这样:

 定义全局ProgressDialog pBar;
  pBar = new ProgressDialog(MainView.this);
  pBar.setMessage("正在加载...");
  pBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);//圈圈状
  pBar.setCancelable(false);
  pBar.show();
  这样根本就没按钮,你非要按钮的话按上面的方法在布局里面加按钮然后 在外层获取按钮
  Button button = (Button)view.findViewById(R.id.xxx);
  然后button设置事件 你用默认的button他就是带点击关闭功能的

参考技术A progressdialog.setCancelable(false);

或者在setButton后 添加Button的点击监听,重写点击事件追问

    progressdialog.setCancelable(false);是对返回键来讲的吧,我这里是直接点击button关闭。

    不知道怎么重写点击事件不关闭button啊,请高手指导一下。

追答

progressdialog.setButton("TEXT", new OnClickListener()

@Override
public void onClick(DialogInterface dialog, int which)
//这里处理


);

追问

在这里处理我知道,关键是怎么处理,实际上在onClick不写代码,默认也会去关闭progressdialog的。

追答

看了下, 确实不行, 这个Button是hide Button,点击后会自动调用progressDialog.hide()

建议你用Dialog自定义实现

请教C#/.net高手,用VS结合源码管理团队协作开发,如何处理引用的dll在不同机器路径不一样的问题?

比如,项目需要引用VS默认安装路径下的某些dll,但不同的开发人员可能把VS安装到不同路径,那么程序员A嵌入后获取最新不一定能编译通过。再假定引用的dll也许只是一两个,但依赖其他没引用的dll有几百M。
你们是如何解决这个问题,请有实践经验的来!

1. 从引用弹出窗->程序集中引用的.Net框架自带的库,都不会有问题。
2. 引用第三方库,一般是浏览文件的形式选中dll,这时你应该在项目文件夹中专门建一个文件夹来存放dll,然后再引用这个文件夹中的dll,如下面的Lib文件夹,这样vs会自动使用相对目录引用。 
3. 使用nuget插件管理引用,比较方便,它其实也是在项目文件夹中新建了一个packages目录存放下载的dll。
4. 如果项目中不引用,直接放到bin目录下也可以,不过一般bin目录不会纳入版本管理的范围。
 <ItemGroup>
    <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\\packages\\EntityFramework.6.1.1\\lib\\net45\\EntityFramework.dll</HintPath>
    </Reference>
    <Reference Include="EntityFramework.SqlServer">
      <HintPath>..\\packages\\EntityFramework.6.1.1\\lib\\net45\\EntityFramework.SqlServer.dll</HintPath>
    </Reference>
    <Reference Include="log4net, Version=1.2.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\\Lib\\log4net.dll</HintPath>
    </Reference>
    <Reference Include="MongoDB.Bson, Version=1.3.1.4349, Culture=neutral, PublicKeyToken=f686731cfb9cc103, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\\Lib\\MongoDB.Bson.dll</HintPath>
    </Reference>
    <Reference Include="MongoDB.Driver, Version=1.3.1.4349, Culture=neutral, PublicKeyToken=f686731cfb9cc103, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\\Lib\\MongoDB.Driver.dll</HintPath>
    </Reference>
    <Reference Include="Newtonsoft.Json">
      <HintPath>..\\Lib\\Newtonsoft.Json.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.ComponentModel.DataAnnotations" />
    <Reference Include="System.Data" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Runtime.Serialization" />
    <Reference Include="System.ServiceModel" />
    <Reference Include="System.Web" />
    <Reference Include="System.Web.ApplicationServices" />
    <Reference Include="System.Web.DynamicData" />
    <Reference Include="System.Web.Entity" />
    <Reference Include="System.Web.Extensions" />
    <Reference Include="System.Web.Extensions.Design" />
    <Reference Include="System.Xml" />
    <Reference Include="System.Configuration" />
    <Reference Include="System.Web.Services" />
    <Reference Include="System.EnterpriseServices" />
    <Reference Include="System.Web.Mobile" />
    <Reference Include="System.Xml.Linq" />
  </ItemGroup>

参考技术A 直接在项目文件夹下建一个文件夹,把引用的dll放进去,或者建一个项目,引用dll,原来的项目引用此项目即可 参考技术B

不安装到指定目录者,一律开除?

参考技术C 用相对路径呀,不用绝对路径。

以上是关于请教高手android开发中progressdialog按确定按钮时不关闭的一个问题?的主要内容,如果未能解决你的问题,请参考以下文章

请教C#/.net高手,用VS结合源码管理团队协作开发,如何处理引用的dll在不同机器路径不一样的问题?

android 应用层如何去调用linux应用

高分请教Inno Setup 编译器高手

请教android tabhost 控件下划线(黑色)问题

请教高手

在安装sdk manager时,老是失败!提示如下:我试了好多钟解决方法,都能未解决!请教高手!