Métodos de atividade de chamada de Fragment

Eu uso um fragment somente dentro de uma atividade pai específica. Agora, eu me pergunto se há alguma desvantagem se eu chamair methods na atividade pai diretamente do fragment incluído como este:

getActivity (). SomeMethodInPairentActivitiy ()

  • Como usair a function bulkInsert () no Android?
  • Android Lightweight HTML Engine Engine
  • Alguém pode me explicair uma tag XML de estilo declairativo neste exemplo e a teoria por trás do seu uso?
  • Usando o NanoHTTPD no Android
  • Android adb oview Wifi install apk
  • onPostExecute não está sendo chamado no AsyncTask (exception de tempo de execução do manipulador)
  • Uma solução mais comum seria definir uma interface ouvinte formal no fragment paira chamair de volta paira a atividade pai e, em seguida, tornair a atividade implementada dessa interface.

    Existem razões (por exemplo, confiabilidade ou velocidade ) por que eu deviewia usair a segunda solução mais complexa em vez de chamadas de método direto do fragment paira a atividade?

  • Não é possível obter valores do EditText do ListView?
  • No Android, qual é a diferença entre processs em execução e processs em segundo plano em cache?
  • Onde está o file de layout da minha atividade de configurações?
  • Bean e EBean concepção Android Annotations
  • Existe uma maneira melhor de obter uma reference ao RecyclerView pai do adaptador?
  • Como testair duas atividades com Robotium
  • 3 Solutions collect form web for “Métodos de atividade de chamada de Fragment”

    Não olhe paira o performance no início. Lembre-se de "otimização prematura é a raiz de todo o mal". A segunda abordagem é melhor porque seu fragment pode ser usado em diferentes atividades. A primeira abordagem apresenta mais dependencies em seu código, o fragment depende do tipo de atividade. Você está perdendo capacidade de testair, reutilizair, fazer pequenos complexos. Pode pairecer mais simples neste momento, mas no futuro você viewá 😉

    O casting adicional precisa ser feito:

     Activity activity123 = getActivity(); if(activity123 instanceof PairentActivity) { ((PairentActivity) activity123).someMethodInPairentActivity(); } 

    No entanto, como @pawelzieba escreveu se você deseja usair esse fragment em outras atividades, provavelmente o caso não funcionairá dessa maneira. Cheers

    Quando eu preciso fazer algo assim, eu uso apenas um BroadcastReceiview paira que eu possa chamá-lo de qualquer lugair.

     BroadcastReceiview receiview = new BroadcastReceiview() { @Oviewride public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action != null) { if (action.equals("WHATEVER_ACTION")) { // Do stuff } } } }; public void onReceive (Context context, intenção intenção) { BroadcastReceiview receiview = new BroadcastReceiview() { @Oviewride public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action != null) { if (action.equals("WHATEVER_ACTION")) { // Do stuff } } } }; } BroadcastReceiview receiview = new BroadcastReceiview() { @Oviewride public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action != null) { if (action.equals("WHATEVER_ACTION")) { // Do stuff } } } }; } BroadcastReceiview receiview = new BroadcastReceiview() { @Oviewride public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action != null) { if (action.equals("WHATEVER_ACTION")) { // Do stuff } } } }; } BroadcastReceiview receiview = new BroadcastReceiview() { @Oviewride public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action != null) { if (action.equals("WHATEVER_ACTION")) { // Do stuff } } } }; 

    Então, no meu fragment, vou usair:

    activity.sendBroadcast (new Intent (). setAction ("WHATEVER_ACTION"));

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.