从回调方法开始 activity

starting activity from a callback method

我使用 class WebServiceAdapter 使用 volley 库来实现 http 连接。因为我找不到 return 字符串到 activity 的方法 我使用一个接口回调到 MainActivity。在其中我想开始一个新的 activity 但它没有开始

我的 WebServiceAdapterClass

public WebServiceAdapter(Context context){
    this.context = context;
    status = "new";
    rQueue = Volley.newRequestQueue(context);
}

private WebServiceInterface wsi;
public void sendGetRequest(String page,Map<String,String> map, WebServiceInterface i){
    wsi = i;
    String query = "";
    if(!map.isEmpty()){
    for (Map.Entry<String, String> entry : map.entrySet())
    {
         query =query + entry.getKey()+"="+entry.getValue()+'&';
    }
    }
    if(query.length() != 0)
        query = query.substring(0,query.length()-1);
    StringRequest sRequest = new StringRequest(Request.Method.GET,BASE_URI+page+"?"+query,
            new Response.Listener<String>()  {
                @Override
                public void onResponse(String response){
                    wsi.successCallback(response,context);
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error){
                    wsi.errorCallback("failed",context);

                }

            });
    rQueue.add(sRequest);
}

并且在使用回调接口的 callBack 中的 MainActivity

@Override
public void successCallback(String s, Context c) {
    Intent myintent = new Intent(c,VerifyRegister.class);
    startActivity(myintent);
    finish();

}

但是 activity 没有启动 我尝试传递 this 、 getApplicationContext() 和 Main Activity.this 而不是 c。但从未工作过

我想要的是 return 成功的字符串我找不到其他方法 但是新 activity 没有开始

更新

验证注册码class

public class VerifyRegister extends Activity implements WebServiceInterface{

 private Button verifyButton;
 private EditText loginVerify;
 StorageAdapter sAdapter;

@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    sAdapter = new StorageAdapter();
    if(sAdapter.getValue(this, "phone").length() == 0)
        finish();
    setContentView(R.layout.login_verify);
     verifyButton = (Button) findViewById(R.id.verifyButton);
     loginVerify = (EditText) findViewById(R.id.loginVerify);

     verifyButton.setOnClickListener(new OnClickListener(){
         public void onClick(View v){

             }
     });

}

@Override
public void successCallback(String s, Context c) {
    // TODO Auto-generated method stub

}

@Override
public void errorCallback(String s, Context c) {
    // TODO Auto-generated method stub

}

*更新 2 * 我这样调用 WebService 适配器

wAdaptor = new WebServiceAdapter(this);
        wAdaptor.sendGetRequest("/register",new  HashMap<String,String>      (),this);

请确认您的 VerifyRegister class 确实扩展了 Activity。如果确实扩展了,请确保您已将其添加到 AndroidManifest 文件中。 你可以尝试的另一件事是,你可以这样写:

Intent myintent = new Intent(MainActivity.this,VerifyRegister.class);

试试这个:

@Override
public void successCallback(String s, Context c) {
    Intent myintent = new Intent(MainActivity.this,VerifyRegister.class);
    c.startActivity(myintent);
    //finish(); Dont use this

}

我在 github 中搜索了类似的项目 并找到了这个

public void successCallback(String s, Context c) {
Intent myintent = new Intent(MainActivity.this,VerifyRegister.class);
MainActivity.this.startActivity(myintent);
finish()

}

新的 activity 以 Context 开始,我是你的情况,你应该使用 to activity currently 运行.

来调用它

MainActivity.this.startActivity(anyintent);