Java Android:在switch.setOnCheckedChangeListener内调用setOnTouchListener
我在两个图像之间切换,我想在仅显示其中一个图像时设置TouchListener。代码如下:Java Android:在switch.setOnCheckedChangeListener内调用setOnTouchListener,java,android,Java,Android,我在两个图像之间切换,我想在仅显示其中一个图像时设置TouchListener。代码如下: Switch switch2 = (Switch) rootView.findViewById(R.id.switch2); final ImageView iv = (ImageView) rootView.findViewById(R.id.image2); switch2.setOnCheckedChangeListener(new CompoundB
Switch switch2 = (Switch) rootView.findViewById(R.id.switch2);
final ImageView iv = (ImageView) rootView.findViewById(R.id.image2);
switch2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
iv.setImageResource(R.drawable.sijuki2);
} else {
iv.setImageResource(R.drawable.sijuki2_default);
}
}
});
if (switch2.equals(false)) {
if (iv != null) {
iv.setOnTouchListener(this);
}
}
但OnTouch在应用程序中不起作用。我尝试将iv.setOnTouchListener(此)
放入onCheckedChanged
中,但(此)
中出现错误
谢谢。要使用OnTouchListener,您必须在这样的片段中实现view.OnTouchListener,
public class YourFragment extends Fragment implements View.OnTouchListener{
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if(view.getId()==R.id.iv)
//your code here
return false;
}
当您实现view.OnTouchListener时,您必须在片段内部重写onTouchmethod
您的OnTouch方法应该如下所示,
public class YourFragment extends Fragment implements View.OnTouchListener{
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if(view.getId()==R.id.iv)
//your code here
return false;
}
好的,我得到了我想要的功能。谢谢你的帮助。这就是我最后做的
Switch switch2 = (Switch) rootView.findViewById(R.id.switch2);
final ImageView iv = (ImageView) rootView.findViewById(R.id.image2);
switch2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
iv.setImageResource(R.drawable.sijuki2);
iv.setOnTouchListener(null);
} else {
iv.setImageResource(R.drawable.sijuki2_default);
iv.setOnTouchListener(SecondFragment.this);
}
}
});
if (iv != null) {
iv.setOnTouchListener(this);
}
谢谢你的帮助,乌斯曼。因此,在
If(switch2.equals(false)){
?或在onCheckedChanged?in If(switch2.equals(false)){中,它不起作用。error.setOnTouchListener(android.view.view.OnTouchListener)不能应用于(androidx.fragment.app.FragmentActivity),但当我使用iv.setOnTouchListener(SecondFragment.this)时
它运行但功能不起作用更新后的回答:你的设置TouchListener应该做什么?我有一个带有图像(漫画书页面)的框架布局将顶部的另一个图像设置为“不可见”。当用户触摸屏幕时,它会获取他们触摸的像素,并检查不可见图像上像素的颜色。它会根据像素的颜色播放声音。这是将漫画书文本和语音气泡转换为按钮的好方法开关的检查更改侦听器是否正常工作?