2015-12-08 3 views
0

Am пытается сделать страницу входа с помощью стабильного переоснащения 1.9, но когда я пытался запустить, что он выдает ошибку метода до сих пор, что я пытался этоОшибка метода восстановления 1.9?

Это моя основная деятельность:

package first.service.precision.servicefirst; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.Context; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ProgressBar; 
import android.widget.TextView; 
import android.widget.Toast; 

import retrofit.Callback; 
import retrofit.GsonConverterFactory; 
import retrofit.Response; 
import retrofit.Retrofit; 

public class MainActivity extends Activity 
{ 
    public EditText password,userName; 
    Button login,resister; 
    ProgressBar progressbar; 
    TextView tv; 
    String TAG="Fails"; 
    String url="http://172.16.7.203/sfAppServices/SF_UserLogin.svc"; 
    private ModelLogin Result; 



    protected void onCreate(final Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     password=(EditText) findViewById(R.id.password); 

     userName=(EditText) findViewById(R.id.txtEmployeeCode); 

     login=(Button) findViewById(R.id.btnsignin); 
     userName.setBackgroundResource(R.drawable.colorfoucs); 


     //progess_msz.setVisibility(View.GONE); 
     ConnectivityManager cn=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo nf=cn.getActiveNetworkInfo(); 
     if(nf != null && nf.isConnected()==true) 
     { 
      Toast.makeText(this, "Network Available", Toast.LENGTH_LONG).show(); 

     } else { 
      showAlertDialog(MainActivity.this,"No Network","Please Check Your Network Connectivity",true); 
     } 

     final ConnectionDetector cd = new ConnectionDetector(getApplicationContext()); 

     login.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 
       progressbar = (ProgressBar) findViewById(R.id.progressBar); 
       progressbar.setVisibility(View.VISIBLE); 
       final String s1 = userName.getText().toString(); 
       String s2 = password.getText().toString(); 
       if (s1.equals("")) { 
        userName.setError("Enter Employee Code"); 
       } 
       if (s2.equals("")) { 
        password.setError("Enter Password"); 

       } 

       Retrofit retro = new Retrofit.Builder().baseUrl(url).addConverterFactory(GsonConverterFactory.create()).build(); 
       RetrofitRest retrofitRest = retro.create(RetrofitRest.class); 
       retrofitRest.getResult(s1, s2, new Callback<ModelLogin>() { 
        @Override 
        public void onResponse(Response<ModelLogin> response, Retrofit retrofit) { 
         if(response.isSuccess()){ 
          Intent intent = new Intent(getApplicationContext(), Main2Activity.class); 
          startActivity(intent); 
          Toast.makeText(MainActivity.this, "Welcome" +""+s1, Toast.LENGTH_SHORT).show(); 
         } 
        } 

        @Override 
        public void onFailure(Throwable t) { 

        } 
       }); 


         // public void onResponse(ModelLogin modelLogin, Retrofit retrofit) 
         // { 


         // } 

         // @Override 
         // public void onResponse(Response<ModelLogin> response, Retrofit retrofit) { 
         // progressbar.setVisibility(View.INVISIBLE); 
         // ModelLogin modelLogin1=new ModelLogin(); 
         // modelLogin1.getLoginResult(); 
         // LoginResult loginResult=new LoginResult(); 
         /// loginResult.getResult(); 
         // ModelLogin modelLogin=new ModelLogin(); 
         // modelLogin.getLoginResult().getResult(); 
         // if() 
         // { 

         //  Toast.makeText(getApplicationContext(),"God",Toast.LENGTH_LONG).show(); 

         // } 
         // else { 
         //  Intent intent=new Intent(getApplicationContext(),Main2Activity.class); 
         //  startActivity(intent); 
         // } 
         // } 
// 
         // @Override 
         // public void onResponse(Response<LoginResult> response, Retrofit retrofit) { 

         // } 

         //// @Override 
         // public void onFailure(Throwable t) { 
         //  Toast.makeText(getApplicationContext(),"God",Toast.LENGTH_LONG).show(); 
         // } 
        } 
        // call.enqueue(new Callback<ModelLogin>() { 
        //  @Override 
        //  public void onResponse(Response<ModelLogin> response, Retrofit retrofit) { 


        //  } 


        // @Override 
        // public void onFailure(Throwable t) { 
        //  Log.d(TAG,"Error"); 
        // } 
        //}); 





     }); 

    } 


    public void showAlertDialog(Context context, String title, String message, Boolean status) { 
     AlertDialog alertDialog = new AlertDialog.Builder(context).create(); 

     // Setting Dialog Title 
     alertDialog.setTitle(title); 

     // Setting Dialog Message 
     alertDialog.setMessage(message); 

     // Setting alert dialog icon 


     // Setting OK Button 
     alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
      } 
     }); 

     // Showing Alert Message 
     alertDialog.show(); 
    } 
    @Override 
    public void onBackPressed() { 
     new AlertDialog.Builder(this) 
       .setIcon(android.R.drawable.ic_dialog_alert) 
       .setTitle("Exit") 
       .setMessage("Are you sure you want to close this application?") 
       .setPositiveButton("Yes", new DialogInterface.OnClickListener() 
       { 
        @Override 
        public void onClick(DialogInterface dialog, int d) { 
         finish(); 
        } 

       }) 
       .setNegativeButton("No", null) 
       .show(); 
    } 
} 

Это мой интерфейс :

package first.service.precision.servicefirst; 

/** 
* Created by 4264 on 23-11-2015. 
*/ 
import retrofit.Callback; 
import retrofit.http.POST; 
import retrofit.http.Path; 

/** 
* Created by 4264 on 03-11-2015. 
*/ 
public interface RetrofitRest { 

    @POST("SF_UserLogin.svc/rest/login/{EMPLOYEECODE}/{PASSWORD}") 
ModelLogin getResult(@Path("EMPLOYEECODE") String empcode, @Path("PASSWORD") String passwrd, Callback<ModelLogin> callback); 



    // @GET("SF_UserLogin.svc/rest/Msg") 
    // Call<ModelLogin>verify(@Body ModelLogin result); 
} 

и это мой POJO:

package first.service.precision.servicefirst; 

/** 
* Created by 4264 on 23-11-2015. 
*/ 
import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 

/** 
* Created by 4264 on 13-11-2015. 
*/ 
public class ModelLogin 
{ 

    @SerializedName("Result") 

    private String Result; 
    @SerializedName("UserID") 
    @Expose 
    private Integer UserID; 
    @SerializedName("ModuleID") 
    @Expose 
    private Integer ModuleID; 
    @SerializedName("ModuleName") 
    @Expose 
    private String ModuleName; 

    /** 
    * 
    * @return 
    * The Result 
    */ 
    public String getResult() { 
     return Result; 
    } 

    /** 
    * 
    * @param Result 
    * The Result 
    */ 
    public void setResult(String Result) { 
     this.Result = Result; 
    } 

    /** 
    * 
    * @return 
    * The UserID 
    */ 
    public Integer getUserID() { 
     return UserID; 
    } 

    /** 
    * 
    * @param UserID 
    * The UserID 
    */ 
    public void setUserID(Integer UserID) { 
     this.UserID = UserID; 
    } 

    /** 
    * 
    * @return 
    * The ModuleID 
    */ 
    public Integer getModuleID() { 
     return ModuleID; 
    } 

    /** 
    * 
    * @param ModuleID 
    * The ModuleID 
    */ 
    public void setModuleID(Integer ModuleID) { 
     this.ModuleID = ModuleID; 
    } 

    /** 
    * 
    * @return 
    * The ModuleName 
    */ 
    public String getModuleName() { 
     return ModuleName; 
    } 

    /** 
    * 
    * @param ModuleName 
    * The ModuleName 
    */ 
    public void setModuleName(String ModuleName) { 
     this.ModuleName = ModuleName; 
    } 

} 

и это мое построить Gradle:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 

    defaultConfig { 
     applicationId "first.service.precision.servicefirst" 
     minSdkVersion 15 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
     debug{ 
      debuggable true 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' 
     } 

    } 

    dependencies { 
     compile fileTree(dir: 'libs', include: ['*.jar']) 
     compile 'com.android.support:appcompat-v7:23.0.1' 
     compile 'com.squareup.retrofit:retrofit:1.9.0' 

     compile 'com.squareup.okhttp:okhttp:2.4.0' 
     compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2' 
     compile 'org.parceler:parceler:0.2.13' 
     compile 'com.squareup:otto:1.3.8' 
    } 
} 

И моя LogCat ошибка сбщ:

2-08 10:27:58.602 11156-11156/first.service.precision.servicefirst E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    java.lang.IllegalArgumentException: Unable to create call adapter for class first.service.precision.servicefirst.ModelLogin 
    for method RetrofitRest.getResult 
      at retrofit.Utils.methodError(Utils.java:177) 
      at retrofit.MethodHandler.createCallAdapter(MethodHandler.java:47) 
      at retrofit.MethodHandler.create(MethodHandler.java:26) 
      at retrofit.Retrofit.loadMethodHandler(Retrofit.java:151) 
      at retrofit.Retrofit$1.invoke(Retrofit.java:132) 
      at $Proxy0.getResult(Native Method) 
      at first.service.precision.servicefirst.MainActivity$1.onClick(MainActivity.java:76) 
      at android.view.View.performClick(View.java:4275) 
      at android.view.View$PerformClick.run(View.java:17434) 
      at android.os.Handler.handleCallback(Handler.java:615) 
      at android.os.Handler.dispatchMessage(Handler.java:92) 
      at android.os.Looper.loop(Looper.java:177) 
      at android.app.ActivityThread.main(ActivityThread.java:4947) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:511) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 
      at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.IllegalArgumentException: Could not locate call adapter for class first.service.precision.servicefirst.ModelLogin. Tried: 
    * retrofit.ExecutorCallAdapterFactory 
      at retrofit.Retrofit.nextCallAdapter(Retrofit.java:207) 
      at retrofit.Retrofit.callAdapter(Retrofit.java:175) 
      at retrofit.MethodHandler.createCallAdapter(MethodHandler.java:45) 
      ... 16 more 

Действительно запутался, где я делаю ошибку, я делаю это в правильном направлении необходимо пройти редактирования текста значных и нужно получить ответ json в событии onclick может кто-нибудь мне помочь?

+0

проверить эту часть ... только 'общедоступный интерфейс RetrofitRest { @POST ("SF_UserLogin.svc/отдых/Логин/{EMPLOYEECODE}/{PASSWORD}") ModelLogin GetResult (@Path (" EMPLOYEECODE ") String empcode, @Path (" PASSWORD ") String passwrd, обратный вызов ); ' – curiousMind

ответ

0

Если вы используете вызов Async, возвращаемый тип должен быть недействительным.

@POST("SF_UserLogin.svc/rest/login/{EMPLOYEECODE}/{PASSWORD}") 
void getResult(@Path("EMPLOYEECODE") String empcode, @Path("PASSWORD") String passwrd, Callback<ModelLogin> callback); 
Смежные вопросы