首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ViewSwitcher和AsyncTask

ViewSwitcher和AsyncTask
EN

Stack Overflow用户
提问于 2012-06-24 07:37:56
回答 1查看 356关注 0票数 0

在LoginClick上,我想在ViewSwitcher切换到ProgressBar时在后台运行用户验证。我在实现AsyncTask时遇到了困难。

OnClick EventHander:

代码语言:javascript
复制
void LoginClick (Object o, EventArgs e)
{
    _v.ShowNext ();
    LoginUser lu = new LoginUser (this, _user.Text, _pw.Text);
    lu.Execute ("run");
}

LoginUser类:

代码语言:javascript
复制
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 ();
    }
}

但是当我构建项目时,我得到一个构建错误:"LoginUser.DoInBackground被标记为覆盖,但没有找到合适的方法来覆盖。“

更新:因此在扩展AsyncTask类方面,MonoDevelop有一点不同。几乎在我有User类的任何地方,我都需要放置Java.Lang.Object。我现在可以毫无错误地进行构建了。然而,现在该应用程序只是在LoginClick上立即崩溃。

代码语言:javascript
复制
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 <filename unknown>:0 
E/mono    (18020):   at Android.Runtime.JNIEnv.FindClass (System.Type type) [0x00000] in <filename unknown>: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):  

以上更新的原始代码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-24 09:36:42

因此,只要在Visual Studio中打开并部署它,它就可以工作。到目前为止,我对MonoDevelop感到非常失望。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11173876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档