Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
改型Android的登录活动_Android_Retrofit - Fatal编程技术网

改型Android的登录活动

改型Android的登录活动,android,retrofit,Android,Retrofit,我是android新手,我试图理解改型库以便在登录应用程序中使用它,但我无法让它工作。这是我的示例代码 LoginAPI.java public interface LoginAPI { @POST("/login.php") public void getFeed(String username,String password,Callback<LoginResponse> response); } 公共接口LoginAPI{ @POST(“/login.php

我是android新手,我试图理解改型库以便在登录应用程序中使用它,但我无法让它工作。这是我的示例代码

LoginAPI.java

  public interface LoginAPI {
   @POST("/login.php")
   public void getFeed(String username,String password,Callback<LoginResponse> response);

}
公共接口LoginAPI{
@POST(“/login.php”)
public void getFeed(字符串用户名、字符串密码、回调响应);
}
MainActivity.java

   login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            RestAdapter restAdapter = new RestAdapter.Builder()
                    .setEndpoint("https://xxx.xxx.xxx.xxx")
                    .build();


            LoginAPI api = restAdapter.create(LoginAPI.class);
            api.getFeed(username,password,new Callback<LoginResponse>() {
                @Override
                public void success(LoginResponse loginResponse, Response response) {
                    Toast.makeText(MainActivity.this,"Logged in",Toast.LENGTH_LONG).show();
                }

                @Override
                public void failure(RetrofitError error) {
                    Toast.makeText(MainActivity.this,"Login Failed",Toast.LENGTH_LONG).show();

                }
            });
        }
    });

}
login.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
RestAdapter RestAdapter=new RestAdapter.Builder()
.setEndpoint(“https://xxx.xxx.xxx.xxx")
.build();
LoginAPI api=restAdapter.create(LoginAPI.class);
getFeed(用户名、密码、新回调(){
@凌驾
public void成功(LoginResponse LoginResponse、Response-Response){
Toast.makeText(MainActivity.this,“登录”,Toast.LENGTH_LONG.show();
}
@凌驾
公共无效失败(错误){
Toast.makeText(MainActivity.this,“登录失败”,Toast.LENGTH_LONG.show();
}
});
}
});
}

在单独的线程或异步任务上进行改装调用

试试这个

 login.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

    Thread fetch = new Thread(new Runnable() {
        @Override
        public void run() {

               RestAdapter restAdapter = new RestAdapter.Builder()
                .setEndpoint("https://xxx.xxx.xxx.xxx")
                .build();


        LoginAPI api = restAdapter.create(LoginAPI.class);
        api.getFeed(username,password,new Callback<LoginResponse>() {
            @Override
            public void success(LoginResponse loginResponse, Response response) {
                Log.d("Response","Logged In");
            }

            @Override
            public void failure(RetrofitError error) {
                Log.d("Response","Failed");

            }
        });
    }
  }

 fetch.start();
});
login.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Thread fetch=新线程(new Runnable()){
@凌驾
公开募捐{
RestAdapter RestAdapter=new RestAdapter.Builder()
.setEndpoint(“https://xxx.xxx.xxx.xxx")
.build();
LoginAPI api=restAdapter.create(LoginAPI.class);
getFeed(用户名、密码、新回调(){
@凌驾
public void成功(LoginResponse LoginResponse、Response-Response){
Log.d(“响应”、“登录”);
}
@凌驾
公共无效失败(错误){
Log.d(“响应”、“失败”);
}
});
}
}
fetch.start();
});

Toast可能无法从其他线程使用Log.d()。

我猜您的界面中缺少注释,请替换

public interface LoginAPI {
   @POST("/login.php")
   public void getFeed(String username,String password,Callback<LoginResponse> response);
}
公共接口LoginAPI{
@POST(“/login.php”)
public void getFeed(字符串用户名、字符串密码、回调响应);
}

公共接口LoginAPI{
@POST(“/login.php”)
public void getFeed(@Field(“username”)字符串username,@Field(“password”)字符串password,回调响应);
}

如果您试图将用户名和密码添加为url参数,即

?username=XXX&password=YYYY
改变 公共接口LoginAPI{ @POST(“/login.php”) public void getFeed(字符串用户名、字符串密码、回调响应); }

公共接口LoginAPI{
@POST(“/login.php”)
public void getFeed(@Query(“username”)字符串username、@Query(“password”)字符串password、回调响应);
}

在单独的线程或异步任务上进行改装调用,使用现有代码是否会出错?如果是,请发布日志。您面临的错误是什么?确实,您不需要在单独的线程或异步任务上进行调用。我尝试过,但它会给我一个错误,未找到改装批注。如果我放置批注,则会收到错误消息@Field p参数只能与表单编码一起使用……您确定login.php REST调用响应正确吗?它是否给出响应?我的意思是改装调用。
?username=XXX&password=YYYY
public interface LoginAPI {
   @POST("/login.php")
   public void getFeed(@Query("username") String username, @Query("password") String password,Callback<LoginResponse> response);    
}