Мне нужно взять данные (несколько строк) из фрагмента в Activity (используя ViewPager).Я сделал метод в этом фрагменте:
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();
}
И я назвал его в 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();
}
}
});
Но он выдает ошибку:
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)
Я прочиталнасчет интерфейсов, я знаю, как их использовать, когда кнопка является частью фрагмента.Но если нет, я понятия не имею.Не могли бы вы помочь мне?Или дать хороший учебник интерфейсов.
РЕДАКТИРОВАТЬ
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();
}
}
});