繁体   English   中英

android studio Viewpager OnClickListener 不工作

[英]android studio Viewpager OnClickListener not working

我有一个带有 Viewpager 和一个适配器的主布局,因此我有多个布局,我可以在它们之间滑动。 对于主要布局,我有一个 Java class 调用适配器:

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 的重点是它将管理/显示片段,因此手动导航到它是没有意义的。 您的视图是否正确显示?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM