public class MainActivity extends AppCompatActivity {
public class Obliczenia extends AsyncTask<Void, Void, Void> {
Activity wywolujaceActivity;
public Obliczenia(Activity wywolujaceActivity) {
this.wywolujaceActivity = wywolujaceActivity;
}
@Override
protected void onPreExecute() {
wywolujaceActivity.showDialog(MainActivity.PLEASE_WAIT_DIALOG);
}
@Override
protected Void doInBackground(Void... arg0) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
wywolujaceActivity.removeDialog(MainActivity.PLEASE_WAIT_DIALOG);
Toast.makeText(wywolujaceActivity, "Obliczono!", Toast.LENGTH_SHORT).show();
}
}
public static final int PLEASE_WAIT_DIALOG = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void buttonGo(View view) {
new Obliczenia(this).execute();
}
@Override
public Dialog onCreateDialog(int dialogId) {
switch (dialogId) {
case PLEASE_WAIT_DIALOG:
ProgressDialog dialog = new ProgressDialog(this);
dialog.setTitle("Obliczanie");
dialog.setMessage("Proszę czekać....");
dialog.setCancelable(true);
return dialog;
default:
break;
}
return null;
}
}
Wziąłem przykład z internetu, ale jakiś baran użył android:onClick zamiast listenera itd. i mam teraz problem którego nie mogę ogarnąć
Jak to zmienić? próbowałem tak:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b=(Button) findViewById(R.id.button1);
View.OnClickListener list=new View.OnClickListener() {
@Override
public void onClick(View v) {
new Obliczenia(TUTAJ WYWALA MI BŁĄD NIE MAM POJECIĄ CO TU WPISAĆ).execute();
}
};
b.setOnClickListener(list);
}