-1

Я хочу вызвать операцию из Dialogfragment, я приложил код и logcat ниже для вашей справки о том, что я пробовал. Обязательно предоставьте мне свои знания об этом. Спасибо.Как вызвать активность из диалогового окна в Android?

Intent intent = new Intent(getActivity(), LinkActivity.class); 
getActivity().startActivityForResult(intent, 0); 

Logcat:

02-12 13: 47: 17,345: Е/AndroidRuntime (670): неустранимым: Основной 02-12 13: 47: 17,345: Е/AndroidRuntime (670): java.lang.NullPointerException 02-12 13: 47: 17.345: E/AndroidRuntime (670): at android.content.ComponentName. (ComponentName.java:75) 02-12 13: 47: 17.345: E/AndroidRuntime (670): at android.content.Intent. (Intent.java:3122) 02-12 13: 47: 17.345: E/AndroidRuntime (670): at com.firstadvantage.activities.LogDialog.LinkActivity (LogDialog.java : 93) 02-12 13: 47: 17.345: E/AndroidRuntime (670): at com.firstadvantage.activities.LogDialog $ 3.onCommandFinished (LogDialog.java:75) 02-12 13: 47: 17.345: E/AndroidRuntime (670)): at com.firstadvantage.buisnesslayer.commands.Command $ 3.run (Command.java:85) 02-12 13: 47: 17.345: E/AndroidRuntime (670): at android.os.Handler.handleCallback (Handler. java: 605) 02-12 13: 47: 17.345: E/AndroidRuntime (670): at android.os.Handler.dispatchMessage (Handler.java:92) 02-12 13: 47: 17.345: E/AndroidRuntime (670): at android.os.Looper.loop (Looper.java:137) 02-12 13: 47: 17.345: E/AndroidRuntime (670): at android.app.ActivityThread.main (ActivityThread.java:4424) 02-12 13: 47: 17.345: E/AndroidRuntime (670): at java.lang.reflect.Method.invokeNative (собственный метод) 02-12 13: 47: 17.345: E/AndroidRuntime (670): в java.lang.reflect.Method.invoke (Method.java:511) 02-12 13: 47: 17.345: E/AndroidRuntime (670): at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit .java: 784) 02-12 13: 47: 17.345: E/AndroidRuntime (670): at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:551) 02-12 13: 47: 17.345 : E/AndroidRuntime (670): в dalvik.system.NativeStart.main (Native Method)

+0

См. Это [ответ] (http://stackoverflow.com/a/13338148/4385913) –

+0

В какой строке получается NPE? –

+0

@ ρяσѕρєя K его в строке 93 .. – Karthik

ответ

2

Есть два способа вызова из фрагмента в операцию, на котором размещается фрагмент:

  1. Просто литье к HostActivity

    ((HostActivity) getActivity()).methodInActivity(); 
    
  2. Использование интерфейса в качестве фрагмента слушателя, HostActivity реализует слушателя:

    private SuperListener hostActivity; 
    
    //In Fragment, define interfce 
    public interface SuperListener{ 
        //for example a confirm dialog 
        void getDialogOk(View dialogView); 
    } 
    
    //in constructor, get listener instance from HostActivity 
    public YourDialogFragment(SuperListener hostActivity) 
    { 
        this.hostActivity = hostActivity; 
    } 
    
    //when `Ok` clicked 
    hostActivity.getDialogOk(dialogView); 
    

Надежда это ясно.

+0

Я хочу вызвать ActivityIntent, как я могу это сделать Xingchen – Karthik

+0

getActivity(). GetIntent(); – Xcihnegn

Смежные вопросы