I need to take data (few Strings) from Fragment in Activity (using ViewPager). I made method in this fragment:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
v = inflater.inflate(R.layout.fragment_fragment_intro_activity_2, container, false);
ed_operetka = v.findViewById(R.id.edOperetka);
return v;
}
public String getText2(){
return ed_operetka.getText().toString();
}
And i called it in Activity:
@Override
public void onClick(View v) {
if (viewPager.getCurrentItem()==0) {
viewPager.setCurrentItem(viewPager.getCurrentItem()+1);
showingFirst = false;
}else {startActivity(intent);
String z = frag.getText2(); //line 44
Toast.makeText(IntroActivity.this, "" + z, Toast.LENGTH_SHORT).show();
}
}
});
But it throws me an error:
W/RenderThread: type=1400 audit(0.0:3989185): avc: denied { read } for name="u:object_r:vendor_default_prop:s0" dev="tmpfs" ino=14894 scontext=u:r:untrusted_app:s0:c114,c256,c512,c768 tcontext=u:object_r:vendor_default_prop:s0 tclass=file permissive=0
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.wynagrodzeniedodatkowe, PID: 26732
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.example.wynagrodzeniedodatkowe.fragments.fragment_intro_activity_2.getText2()' on a null object reference
at com.example.wynagrodzeniedodatkowe.IntroActivity$1.onClick(IntroActivity.java:44)
I read about interfaces, I know how to use them when the button is part of the fragment. But if its not I have no idea. Could you help me? Or give good interfaces tutorial.
EDIT
ViewPager viewPager;
Button button_next;
boolean showingFirst;
fragment_intro_activity_2 frag;
String z;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_intro);
FullScreencall();
button_next = findViewById(R.id.btnNext);
viewPager = findViewById(R.id.viewPager);
viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager()));
frag = new fragment_intro_activity_2();
showingFirst = true;
button_next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (viewPager.getCurrentItem()==0) {
viewPager.setCurrentItem(viewPager.getCurrentItem()+1);
showingFirst = false;
}else {
z = frag.getText2(); //line 44
Toast.makeText(IntroActivity.this, "" + z, Toast.LENGTH_SHORT).show();
}
}
});