我有一个带有 Viewpager 和适配器的主布局,这样我就有多个布局,并且可以在它们之间滑动。对于主布局,我有一个调用适配器的 Java 类:
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()
并且应该处理多个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");
}
});
}
因为按钮位于第三个布局上,所以我必须膨胀第三个布局。找到按钮但未调用 onclickListener
编辑: 调用片段:
Fragment test = new UebungWieFunktioniertJava();
getSupportFragmentManager().beginTransaction().replace(R.id.viewPager,
test).commit();
片段:
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");
}
}
最佳答案
移动此代码:
one = getView().findViewById(R.id.compiler);
one.setOnClickListener(this);
到onCreateView()像这样:
one = (Button) myView.findViewById(R.id.compiler);
one.setOnClickListener(this);
此外,请确保在此片段的 .xml 中 R.id.compiler 设置为按钮!
另一件事,使用 viewpager 的要点是它将管理/显示片段,因此手动导航到它是没有意义的。您的 View 显示正确吗?
关于java - android studio Viewpager OnClickListener 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61761997/