zmiana android:onclick na listenera

0
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);
    }

1

wystarczy ze w argumencie zamiast "TUTAJ WYWALA MI BŁĄD NIE MAM POJECIĄ CO TU WPISAĆ" wpiszesz MainActivity.this, czyli: new Obliczenia(MainActivity.this).execute();

A błąd mogles miec przez to, że this w tamtym miejscu odwolywal sie nie do Activity tylko do OnClickListenera.

1 użytkowników online, w tym zalogowanych: 0, gości: 1