Я хотел передать данные из Activity в текущий загруженный фрагмент нажатием кнопки. Для этого я создал интерфейс и определил его в действии и реализовал в интерфейсе, но не смог получить ответ в фрагменте.Интерфейс не работал с активностью до загруженного в данный момент фрагмента
Мне нужен выход всякий раз, когда кнопка нажимает на огонь в Activity.
Вот мой код. Пожалуйста, помогите мне решить эту проблему.
Inteface
public interface Click {
void onClick(String msg);
}
Главная Actvity
public class MainActivity extends FragmentActivity {
DrawerLayout dlMain;
Button btnClick;
Click click;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentOne fragmentOne = new FragmentOne();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.flContainer, fragmentOne,"FragmentOne");
ft.commit();
click = (Click) getSupportFragmentManager().findFragmentByTag("FragmentOne").;
dlMain = (DrawerLayout) findViewById(R.id.dlMain);
btnClick = (Button) findViewById(R.id.btnClick);
btnClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("Btn Click", "click");
click.onClick("Button Clicked!");
}
});
}
}
FragmentOne
public class FragmentOne extends Fragment implements Click {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_one, container, false);
return view;
}
@Override
public void onClick(String msg) {
Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT).show();
}
}
Но я получаю сообщение об ошибке в MainActivity Это мои журналы ошибок.
05-09 10: 30: 49,092 19101-19101/com.psk.interfacetest E/Btn Нажмите: нажмите 05-09 10: 30: 49,095 19101-19101/com.psk.interfacetest E/AndroidRuntime: неустранимый: Основной процесс: com.psk.interfacetest, ПИД: 19101 java.lang.NullPointerException в com.psk.interfacetest.MainActivity $ 1.onClick (MainActivity.java:37) в android.view.View .performClick (View.java:4471) на android.view.View $ PerformClick.run (View.java:18778) на android.os.Handler.handleCallback (H andler.java:808) на android.os.Handler.dispatchMessage (Handler.java:103) на android.os.Looper.loop (Looper.java:193) на android.app.ActivityThread.main (ActivityThread. java: 5345) по адресу java.lang.reflect.Method.invokeNative (собственный метод) по адресу java.lang.reflect.Method.invoke (Method.java:515) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller .run (ZygoteInit.java:824) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:640) на dalvik.system.NativeStart.main (Родной метод)
Спасибо .. работа большой ..... – Rushvi