ViewSwitcher en AsyncTask

Op LoginClick Ik wil de gebruikersvalidatie op de achtergrond uitvoeren terwijl mijn ViewSwitcher overschakelt naar de ProgressBar. Ik heb problemen met het implementeren van het AsyncTask.

OnClick EventHander:

void LoginClick (Object o, EventArgs e)
{
    _v.ShowNext ();
    LoginUser lu = new LoginUser (this, _user.Text, _pw.Text);
    lu.Execute ("run");
}

LoginUser Class:

class LoginUser: AsyncTask
{
    private readonly string _userName;
    private readonly string _password;
    private readonly Context _context;
            private User user;

    public LoginUser (Context context, string userName, string password)
    {
        _context = context;
        _userName = userName;
        _password = password;
    }

    protected override Java.Lang.Object DoInBackground (Java.Lang.Object[] @params)
    {
        WS ws = new WS ();
        user = ws.validateUser (_userName, _password);
        return true;          
    }

    protected override void OnPostExecute (Java.Lang.Object result)
    {
        Toast.MakeText (_context, user.Market, ToastLength.Long).Show ();
    }
}

Maar wanneer ik het project bouw, krijg ik een build-foutmelding "LoginUser.DoInBackground is gemarkeerd als een opheffing maar er is geen geschikte methode gevonden om te negeren."

UPDATE: Dus MonoDevelop is een beetje anders in het uitbreiden van AsyncTask Class. Bijna overal waar ik mijn gebruikersklasse heb, moest ik Java.Lang.Object plaatsen. Ik kan nu zonder fouten bouwen. Nu crasht de app echter gewoon onmiddellijk bij LoginClick.

E/mono    (18020): Unhandled Exception: Java.Lang.NoClassDefFoundError: Exception of type 'Java.Lang.NoClassDefFoundError' was thrown.
E/mono    (18020):   at Android.Runtime.JNIEnv.FindClass (System.String classname) [0x00000] in :0 
E/mono    (18020):   at Android.Runtime.JNIEnv.FindClass (System.Type type) [0x00000] in :0 
E/mono    (18020):   --- End of managed exception stack trace ---
E/mono    (18020): java.lang.NoClassDefFoundError: cpec_fm.LoginUser
E/mono    (18020):  at mono.android.view.View_OnClickListenerImplementor.n_onClick(Native Method)
E/mono    (18020):  at mono.android.view.View_OnClickListenerImplementor.onClick(View_OnClickListenerImplementor.java:29)
E/mono    (18020):  at android.view.View.performClick(View.java:3110)
E/mono    (18020):  at android.view.View$PerformClick.run(View.java:11934)
E/mono    (18020):  at android.os.Handler.handleCallback(Handler.java:587)
E/mono    (18020):  at android.os.Handler.dispatchMessage(Handler.java:92)
E/mono    (18020):  at android.os.Looper.loop(Looper.java:132)
E/mono    (18020):  at android.app.ActivityThread.main(ActivityThread.java:4143)
E/mono    (18020):  at java.lang.reflect.Method.invokeNative(Native Method)
E/mono    (18020):  at java.lang.reflect.Method.invoke(Method.java:491)
E/mono    (18020):  

Oorspronkelijke code hierboven bijgewerkt.

0

1 antwoord

Dus gewoon geopend in Visual Studio en geïmplementeerd en het werkt. Tot nu toe waren erg teleurgesteld door MonoDevelop.

0
toegevoegd