gpt4 book ai didi

java - 单击监听器不起作用

转载 作者:行者123 更新时间:2023-12-02 11:52:14 25 4
gpt4 key购买 nike

我的 ViewPager 有问题,我有一个 OnClickListener 所有选项卡都点击我计算机上的模拟器,但是在我的手机上有点奇怪,只有中间的选项卡点击,其他 2 个选项卡点击根本不。我什至把日志放在那里,但他们没有记录任何东西。更糟糕的是,没有错误,它只是没有做任何事情。

Small Part
vpPager.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if (vpPager.getCurrentItem() == 0) {
zmanimListPopUp();
} else if (vpPager.getCurrentItem() == 1) {
zmanimListPopUp();
} else if (vpPager.getCurrentItem() == 2) {
zmanimListPopUp();
}

}


});

请帮助我!

谢谢!

更新

大部分

 vpPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override
public void onPageSelected(int position) {

prefs.edit().putInt("currentFragmentItem", position).commit();
Log.d("MainActivity", "Position: " + prefs.getInt("currentFragmentItem", 1));
}

@Override
public void onPageScrollStateChanged(int state) {

}
});


vpPager.setCurrentItem(prefs.getInt("currentFragmentItem", 1));
Log.d("MainActivity", "Position on launch: " + prefs.getInt("currentFragmentItem", 1));


DotsIndicator dotsIndicator = (DotsIndicator) findViewById(R.id.dots_indicator);
dotsIndicator.setViewPager(vpPager);
dotsIndicator.setPointsColor(Color.rgb(142, 96, 97));

onClickListener();

}

private void onClickListener() {


vpPager.setOnTouchListener(
new View.OnTouchListener() {
private boolean moved;

@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
moved = false;
}
if (motionEvent.getAction() == MotionEvent.ACTION_MOVE) {
moved = true;
}
if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
if (!moved) {
view.performClick();
}
}

return false;
}
}
);

vpPager.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if (vpPager.getCurrentItem() == 0) {
zmanimListPopUp();
} else if (vpPager.getCurrentItem() == 1) {
zmanimListPopUp();
} else if (vpPager.getCurrentItem() == 2) {
zmanimListPopUp();
}

}


});


}

所做的更改:

    vpPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

// This method will be invoked when a new page becomes selected.
@Override
public void onPageSelected(int position) {


}

// This method will be invoked when the current page is scrolled
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
vpPager.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if (vpPager.getCurrentItem() == 0) {
zmanimListPopUp();
} else if (vpPager.getCurrentItem() == 1) {
zmanimListPopUp();
} else if (vpPager.getCurrentItem() == 2) {
zmanimListPopUp();
}

}


});
}

// Called when the scroll state changes:
// SCROLL_STATE_IDLE, SCROLL_STATE_DRAGGING, SCROLL_STATE_SETTLING
@Override
public void onPageScrollStateChanged(int state) {
// Code goes here
}
});

最佳答案

尝试 vpPager.setOnPageChangeListener..... 和 public void onPageSelected(intposition) {} 从内部监听所选页面并返回页面位置并相应地采取操作,就像您的代码一样。

 tvPager.setOnPageChangeListener(new OnPageChangeListener() {

// This method will be invoked when a new page becomes selected.
@Override
public void onPageSelected(int position) {
if (position == 0) {
zmanimListPopUp();
} else if (position == 1) {
zmanimListPopUp();
} else if (position == 2) {
zmanimListPopUp();
}

}

// This method will be invoked when the current page is scrolled
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
// Code goes here
}

// Called when the scroll state changes:
// SCROLL_STATE_IDLE, SCROLL_STATE_DRAGGING, SCROLL_STATE_SETTLING
@Override
public void onPageScrollStateChanged(int state) {
// Code goes here
}
});

关于java - 单击监听器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47814962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com