java - android studio Viewpager OnClickListener 不工作

标签 java android-studio button android-viewpager

我有一个带有 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/

相关文章:

android - Gradle 失败 - 无法找到方法 com.google.common.io.CharSource.readLines

html - 删除 HTML、CSS 中按钮之间的空格

Android 使用图层列表作为按钮选择器

java - 决定不使用 SQL 的图书列表分页策略

java - 在 Java 中保存 XML 文件时出现特殊字符错误 ("<"和 ">")

Android Studio - Android 设备监视器 - 空 View

java - Android 仪器测试 : No instrumentation registered Error

android - 为什么该 Activity 被调用两次?

java - 扩展 ArrayList 的类无法正确序列化

java - 如何生成独特的优惠券代码?