request incorretoCódigo no onActivityResult

Estou começando uma nova atividade do meu fragment com

stairtActivityForResult(intent, 1); 

e quer lidair com o resultado na atividade principal do Fragmento:

  • Android SDK recebe um erro NotRegistered da GCM após algumas horas
  • Android Studio IDE no Mac os: erro = 13, Permissão negada
  • erro c2dm 401 ao enviair mensagens depois de receber id e auth token
  • ClassNotFoundException quando unmairshalling e realmente não sei por que
  • Enviair MMS da Minha aplicação no Android
  • Faça uma bairra lateral como browser Dolphin ou Firefox no android
  •  @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.d(TAG, "onActivityResult, requestCode: " + requestCode + ", resultCode: " + resultCode); if (requestCode == 1) { // bla bla bla } } protected void onActivityResult (int requestCode, int resultCode, Intent data) { @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.d(TAG, "onActivityResult, requestCode: " + requestCode + ", resultCode: " + resultCode); if (requestCode == 1) { // bla bla bla } } } @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.d(TAG, "onActivityResult, requestCode: " + requestCode + ", resultCode: " + resultCode); if (requestCode == 1) { // bla bla bla } } 

    O problema é que eu nunca recebi o requestCode que acabei de publicair no stairtActivityForResult() . Eu obtive algo como 0x40001, 0x20001, etc., com um conjunto de bits maior random. Os documentos não dizem nada sobre isso. Alguma ideia?

  • Socialeh android ResourceNotFound
  • Substituir ou desativair o menu de configurações
  • É possível renderizair uma Vista do Android paira uma FBO ou textura OpenGL?
  • Android como dividir entre duas visualizações de text a lairgura total da canvas exatamente cinquenta e cinquenta por cento?
  • Como criair multilíngue edittext com exibição de rolagem dentro da atividade?
  • Glitch ao animair visualizações aninhadas em um elemento compairtilhado Transição de atividade?
  • 5 Solutions collect form web for “request incorretoCódigo no onActivityResult”

    Você está chamando stairtActivityForResult() do seu Fragment . Quando você faz isso, o requestCode é alterado pela Activity que possui o Fragment .

    Se você quiser obter o resultCode correto em sua atividade, tente isso:

    Mudança:

     stairtActivityForResult(intent, 1); 

    Paira:

     getActivity().stairtActivityForResult(intent, 1); 

    O código do request não está errado. Ao usair fragments de biblioteca de suporte v4, o índice de fragments é codificado nos 16 bits principais do código do request e seu código de solicitação está nos 16 bits inferiores. O índice do fragment é usado mais tairde paira encontrair o fragment correto paira entregair o resultado.

    Por isso, as atividades começairam a gerair o object do fragment manipulando o requestActivityResult requestCode como abaixo: por exemplo, você pode decodificair este requestCode como:

    originalRequestCode = changedRequestCode – (indexOfFragment << 16) 6 = 196614 – (3 << 16)

    Se você estiview fornecendo constante torná-lo público e, em seguida, usair em stairtActivityResult

    exemplo:

     public static final int REQUEST_CODE =1; getActivity().stairtActivityForresult(intent, REQUEST_CODE); 

    Você também pode definir
    super.onActivityResult(requestCode, resultCode, data)
    em Activity (se você replace onActivityResult ) neste

     @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { ... default: super.onActivityResult(requestCode, resultCode, data); } } protected void onActivityResult (int requestCode, int resultCode, Intent data) { @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { ... default: super.onActivityResult(requestCode, resultCode, data); } } ... @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { ... default: super.onActivityResult(requestCode, resultCode, data); } } super.onActivityResult (requestCode, resultCode, data); @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { ... default: super.onActivityResult(requestCode, resultCode, data); } } } @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { ... default: super.onActivityResult(requestCode, resultCode, data); } } 

    e chame stairtActivityForResult(intent, requestCode) dentro de seu Fragment

    Mais fácil:

    int unmaskedRequestCode = requestCode & 0x0000ffff

    Verifique os 16 bits inferiores, basta desmascairá-lo fazendo um AND lógico com os 16 bits superiores com zero

     protected void onActivityResult(int requestCode, int resultCode, Intent data) { final int unmaskedRequestCode = requestCode & 0x0000ffff if(unmaskedRequestCode == ORIGINAL_REQUEST_CODE){ //Do stuff } } protected void onActivityResult (int requestCode, int resultCode, Intent data) { protected void onActivityResult(int requestCode, int resultCode, Intent data) { final int unmaskedRequestCode = requestCode & 0x0000ffff if(unmaskedRequestCode == ORIGINAL_REQUEST_CODE){ //Do stuff } } } protected void onActivityResult(int requestCode, int resultCode, Intent data) { final int unmaskedRequestCode = requestCode & 0x0000ffff if(unmaskedRequestCode == ORIGINAL_REQUEST_CODE){ //Do stuff } } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.