我已经阅读了几个stackoverflow.com的答案,但仍然没有看到使用DialogFragment优于简单的AlertDialog的优势.显然,我有两个策略:
a)使用AlertDialog.Builder配置AlertDialog,.create()它,然后在我的Activity(在某个按钮处理程序中)中配置.show(),或者
b)子类DialogFragment,在onCreateDialog()中编写相同的AlertDialog构建代码(除了我只返回.create(),然后,在我的Activity中,实例化一个DialogFragment,并显示它.
输出看起来一样.
无论哪种方式,我没有使用弃用的代码 - 我使用.show()同时使用AlertDialog或DialogFragment.当我去另一个尺寸的设备时,这是优势吗?或者重点是什么......
感谢您的任何见解,
迈克尔
resultLabel是一个UILabel.那么为什么呢
resultLabel.Text= @"";
Run Code Online (Sandbox Code Playgroud)
不给出错误?它应该是resultLabel.text.
感谢您的任何见解.
所有:
我创建了一个Windows窗体和一个Button.在另一个线程中,我尝试更改按钮的文本,然后崩溃; 但如果我试图改变按钮的颜色,它可靠地成功.我认为如果您更改了任何Windows窗体控件属性,它将崩溃.有人能告诉我发生了什么事吗?
这是我的代码,在注释掉的行上没有崩溃(但我认为应该):
Thread thr = new Thread(() => {
//myButton.ForeColor = Color.Purple; // this never causes a crash :=(
myButton.Text = Color.Purple.ToString(); // this always causes a crash.
}); //
thr.Start();
Run Code Online (Sandbox Code Playgroud)
任何见解将不胜感激!
迈克尔
所有:
我真的不是grok处理程序了.我认为下面的代码 - 修改,以便,而不是使用处理程序,直接访问UI小部件(进度条) - 将导致跨线程异常.但事实并非如此.所以,我的问题是,这段代码不应该崩溃吗?如果没有,那么我什么时候需要使用处理程序?
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
progress = 0;
progressBar = (ProgressBar) findViewById(R.id.progressbar);
progressBar.setMax(200);
//---do some work in background thread---
new Thread(new Runnable()
{
public void run()
{
//ó-do some work hereó-
while (progressStatus < 200)
{
progressStatus = doSomeWork();
progressBar.setProgress(progressStatus); // not on UI thread
//ó-Update the progress baró- // so shouldn't it crash?
// handler.post(new Runnable()
// {
// public void run() {
// progressBar.setProgress(progressStatus);
// }
// });
}
//---hides …Run Code Online (Sandbox Code Playgroud) 我正在尝试按照Google 的说明从命令行部署云功能。我克隆了他们的示例项目,但是当我使用gcloud FunctionsDeploy来部署它时,它抱怨找不到属性 [project]。我必须手动提供。
他们在文档中的哪里谈论设置项目属性?我一定是错过了,而且它似乎很重要......