gpt4 book ai didi

java - 从外部显示 ProgressDialog

转载 作者:行者123 更新时间:2023-12-01 11:53:08 27 4
gpt4 key购买 nike

我想从外部类中显示当前 Activity 的 ProgressDialog,而不是将变量传递到外部类或像其他已回答的问题一样使用静态变量。是否可以?这是一些简单的测试代码,可能有助于说明我想要做什么:

MainActivity.java

package com.example.test;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import com.example.test.test2;

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void buttonPressed( View view) {
test2 T2;
T2 = new test2();
Log.d("button", "pressed");
T2.change();
}
}

和test2.java

package com.example.test;

import android.app.ProgressDialog;

public class test2 {

ProgressDialog mDialog;

public void change() {
mDialog = new ProgressDialog(this);
mDialog.setMessage("Testing");
mDialog.setCancelable(true);
mDialog.show();
}

}

按下按钮时,将调用函数buttonPressed,该函数将调用test2类以在主 Activity 上显示ProgressDialog。

我认为这一切都依赖于mDialog = new ProgressDialog(this);中的上下文,就像需要以某种方式告诉它当前的 Activity 一样?但我是 Java 新手,所以这只是一个猜测。

最佳答案

一个可能的解决方案是更改从 Test2 传递当前 Activity 作为参数的方法:

public void change(Context context) {
mDialog = new ProgressDialog(context);
mDialog.setMessage("Testing");
mDialog.setCancelable(true);
mDialog.show();
}

然后在 MainActivity 类中执行此调用:

public void buttonPressed( View view) {
test2 T2;
T2 = new test2();
Log.d("button", "pressed");
T2.change(this);
}

关于java - 从外部显示 ProgressDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28631702/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com