Android 类型视图中的setOnClickListener(View.OnClickListener)不适用于参数(SequenceActivity)back.setOnClickListener(this);
我想在单击按钮时显示图像,但我的代码中有三个错误。怎么了Android 类型视图中的setOnClickListener(View.OnClickListener)不适用于参数(SequenceActivity)back.setOnClickListener(this);,android,Android,我想在单击按钮时显示图像,但我的代码中有三个错误。怎么了 类型SequencePractivity必须实现继承的抽象方法DialogInterface.OnClickListener.onClick(DialogInterface,int) 类型视图中的方法setOnClickListener(View.OnClickListener)不适用于参数(SequenceActivity) SequenceActivity类型的方法onClick(View)必须重写或实现超类型方法 下面是给出这
DialogInterface.OnClickListener.onClick(DialogInterface,int)
setOnClickListener(View.OnClickListener)
不适用于参数(SequenceActivity)
onClick(View)
必须重写或实现超类型方法
下面是给出这些错误的代码:
public class SequencerActivity extends Activity implements OnClickListener
{
private int imageCounter = 0;
private ImageView imageLoader;
private int[] imageList = {R.drawable.f03, R.drawable.f04, R.drawable.f05, R.drawable.f06};
@Override
public void onCreate(Bundle savedInstanceState)
{
setContentView(R.layout.main);//this one is the common parent layout for all image views
super.onCreate(savedInstanceState);
/*requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);*/
//int image1 = R.drawable.image_w_lbl_0;
imageLoader = (ImageView) findViewById(R.id.imageLoader);
//imageLoader.setImageResource(image1);
Button next = (Button) findViewById(R.id.next);
Button back = (Button) findViewById(R.id.back);
next.setOnClickListener(this);
back.setOnClickListener(this);
back.setEnabled(false);
//show the default image
this.loadImage(imageList[imageCounter]);
}
@Override
public void onClick(View v)
{
int imagePath = 0;
// TODO Auto-generated method stub
switch (v.getId())
{
case R.id.next:
Log.i("Tag","tag");
if(imageCounter < imageList.length)
{
imageCounter++;
imagePath = imageList[imageCounter];
if (imageCounter==(imageList.length)-1)
{
{
ImageButton next=(ImageButton)findViewById(R.id.next);
next.setEnabled(false);
}
}
else
{
ImageButton back=(ImageButton)findViewById(R.id.back);
back.setEnabled(true);
}
}
break;
case R.id.back:
if(imageCounter > 0)
{
imageCounter--;
imagePath = imageList[imageCounter];
if (imageCounter==0)
{
ImageButton back=(ImageButton)findViewById(R.id.back);
back.setEnabled(false);
}
else
{
ImageButton next=(ImageButton)findViewById(R.id.next);
next.setEnabled(true);
}
}
break;
}
this.loadImage(imagePath);
}
private void loadImage(int imagePath)
{
imageLoader.setImageResource(imagePath);
}
}
公共类SequenceActivity扩展活动实现OnClickListener
{
专用int imageCounter=0;
私有ImageView图像加载器;
private int[]imageList={R.drawable.f03,R.drawable.f04,R.drawable.f05,R.drawable.f06};
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
setContentView(R.layout.main);//这是所有图像视图的公共父布局
super.onCreate(savedInstanceState);
/*requestWindowFeature(窗口。功能\u无\u标题);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,
WindowManager.LayoutParams.FLAG(全屏)*/
//int image1=R.drawable.image\u w\u lbl\u 0;
imageLoader=(ImageView)findViewById(R.id.imageLoader);
//imageLoader.setImageResource(image1);
按钮下一步=(按钮)findViewById(R.id.next);
按钮返回=(按钮)findViewById(R.id.back);
next.setOnClickListener(this);
back.setOnClickListener(this);
back.setEnabled(false);
//显示默认图像
这个.loadImage(imageList[imageCounter]);
}
@凌驾
公共void onClick(视图v)
{
int imagePath=0;
//TODO自动生成的方法存根
开关(v.getId())
{
案例R.id.next:
Log.i(“标签”、“标签”);
if(imageCounter0)
{
图像计数器--;
imagePath=imageList[imageCounter];
如果(imageCounter==0)
{
ImageButton back=(ImageButton)findViewById(R.id.back);
back.setEnabled(false);
}
其他的
{
ImageButton next=(ImageButton)findViewById(R.id.next);
next.setEnabled(true);
}
}
打破
}
这个.loadImage(imagePath);
}
私有void loadImage(int-imagePath)
{
imageLoader.setImageResource(imagePath);
}
}
您正在实现的OnClickListener
是错误的。它说它是DialogInterface.OnClickListener,而您可能想要查看.OnClickListener。您可以在相应的import
语句中更正此问题。您实现的OnClickListener
不正确,
尝试实现View.OnClickListener,而不是DialogInterface.OnClickListener
您可以在导入中看到这一点
导入视图。OnClickListener
而不是
import DialogInterface.OnClickListener
仍然无法解决错误类型import View.OnClickListener
然后在import View.OnClickListener中的视图上移动光标代码>将打开弹出窗口,然后选择“组织导入”选项
只需使用import View.OnClickListener代码>在顶部。只需做一件事。使用程序顶部的“import android.view.view.OnClickListener”语句。您需要导入import android.view.view.OnClickListener;
所以你的代码看起来像
import android.view.View.OnClickListener;
public class MainActivity extends Activity implements OnClickListener{
// Your oncreate() and rest of all code
}
// you should have method as below
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v.getId() == R.id.editText1) // just for instance
{
.. your onclick handle code
}
}
实现View.View.onClickListener执行一件事
删除导入android.content.DialogInterface.OnClickListener强>
进口
android.View.View.OnClickListener
这将解决问题
快乐编码谢谢,这让我快发疯了。请马克回答。达伦是完全正确的(至少在我的情况下),当给出答案时,最好是给出正确的答案。
onClick(View v)
public class SequencerActivity extends Activity implements OnClickListener
{
private int imageCounter = 0;
private ImageView imageLoader;
private int[] imageList = {R.drawable.f03, R.drawable.f04, R.drawable.f05, R.drawable.f06};
@Override
public void onCreate(Bundle savedInstanceState)
{
setContentView(R.layout.main);//this one is the common parent layout for all image views
super.onCreate(savedInstanceState);
/*requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);*/
//int image1 = R.drawable.image_w_lbl_0;
imageLoader = (ImageView) findViewById(R.id.imageLoader);
//imageLoader.setImageResource(image1);
Button next = (Button) findViewById(R.id.next);
Button back = (Button) findViewById(R.id.back);
next.setOnClickListener(this);
back.setOnClickListener(this);
back.setEnabled(false);
//show the default image
this.loadImage(imageList[imageCounter]);
}
@Override
public void onClick(View v)
{
int imagePath = 0;
// TODO Auto-generated method stub
switch (v.getId())
{
case R.id.next:
Log.i("Tag","tag");
if(imageCounter < imageList.length)
{
imageCounter++;
imagePath = imageList[imageCounter];
if (imageCounter==(imageList.length)-1)
{
{
ImageButton next=(ImageButton)findViewById(R.id.next);
next.setEnabled(false);
}
}
else
{
ImageButton back=(ImageButton)findViewById(R.id.back);
back.setEnabled(true);
}
}
break;
case R.id.back:
if(imageCounter > 0)
{
imageCounter--;
imagePath = imageList[imageCounter];
if (imageCounter==0)
{
ImageButton back=(ImageButton)findViewById(R.id.back);
back.setEnabled(false);
}
else
{
ImageButton next=(ImageButton)findViewById(R.id.next);
next.setEnabled(true);
}
}
break;
}
this.loadImage(imagePath);
}
private void loadImage(int imagePath)
{
imageLoader.setImageResource(imagePath);
}
}
import android.view.View.OnClickListener;
public class MainActivity extends Activity implements OnClickListener{
// Your oncreate() and rest of all code
}
// you should have method as below
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v.getId() == R.id.editText1) // just for instance
{
.. your onclick handle code
}
}