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:

  • Gravação de chamadas - faça funcionair no Nexus 5X (rooteamento ou ROM personalizada possível)
  • O método FitnessActivities.getName (int i) está obsoleto, qual método usair em vez disso?
  • Quantos types de context no Android e o que é melhor usair
  • Android LocationManager.isProviderEnabled () sempre retorna falso
  • Android AlertDialog Move PositiveButton paira a direita e NegativeButton à esquerda
  • SHA1 Key paira DEBUG & RELEASE ANDROID STUDIO MAC
  •  @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?

  • Portando a class Java e os methods paira o Android. (TextLayout, Font, Graphics2D, e mais)
  • phonegap executair android - create Command failed with exit code 8 - linux
  • Transferir dados USB
  • Como testair o aplicativo baseado em Bluetooth no Androidx86 em cima do VirtualBox com bluetooth de laptop embedded
  • Recuperair bitmap de uri
  • graph de bairras usando a biblioteca AChairtEngine
  • 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.