I have a main layout with a Viewpager and an adapter so that I have multiple layouts and I can swipe between them. For the main layout I have a Java class which calls the Adapter:
public class Was_ist_Java extends AppCompatActivity implements ViewPager.OnPageChangeListener, View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_was_ist_java);
viewPager = findViewById(R.id.viewPager);
progressBar = findViewById(R.id.progressBar);
mPageAdapter = new Adapter(layouts, this);
viewPager.setAdapter(mPageAdapter);
Uebung()
and should handle multiple onclickListeners:
private void Uebung() {
View third = getLayoutInflater().inflate(R.layout.third, null, false);
ImageButton reload = third.findViewById(R.id.reload);
if(reload != null) {
Log.d("reload", "reload");
}
reload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("hier", "called");
}
});
}
Because the button is on the third layout I have to inflate the third layout. The button is found but the onclickListener not get called
Edit: Call Fragment:
Fragment test = new UebungWieFunktioniertJava();
getSupportFragmentManager().beginTransaction().replace(R.id.viewPager,
test).commit();
Fragment:
public class UebungWieFunktioniertJava extends Fragment implements View.OnClickListener {
Button one;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedinstanceState) {
View myView = inflater.inflate(R.layout.third, container, false);
return myView;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
one = getView().findViewById(R.id.compiler);
one.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Log.d("meistrer", "moiun");
}
}