Я хочу показать ProgressDialog о текущей деятельности из внешнего класса, кроме передачи переменной во внешний класс или использования статической переменной, как и другие ответы на вопросы. Является ли это возможным? Вот некоторые простой тест код, который может помочь проиллюстрировать то, что я хочу сделать:Показать 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();
}
}
Когда кнопка нажата, Funtion buttonPressed , который вызывает класс test2 для отображения ProgressDialog для основной активности.
Я думаю, что все это зависит от контекста в mDialog = new ProgressDialog(this);
, как-то нужно рассказать о текущей деятельности? Но я новичок в Java, так что это просто догадка.
Ваше предположение верно, потому что ' this' относится к текущему классу. И вам нужен «Контекст» для конструктора, который «Активность» есть. Ответ от programmer23 должен сработать для вас – codeMagic