我想在按钮点击时显示图像,但我的代码中有三个错误。怎么了?
class name "SequencerActivity"
SequencerActivity类型必须实现继承的抽象方法DialogInterface.OnClickListener.onClick(DialogInterface, int)
。
next.setOnClickListener(this);
类型视图中的方法setOnClickListener(View.OnClickListener)
不适用于参数(SequencerActivity)
。
onClick(View v)
类型onClick(View)
的方法SequencerActivity
必须覆盖或实现超类型方法。
以下是给出这些错误的代码:
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);
}
}
答案 0 :(得分:41)
您实施的OnClickListener
不正确,
尝试实现View.OnClickListener而不是DialogInterface.OnClickListener。
您可以在导入中看到
import View.OnClickListener
而不是
import DialogInterface.OnClickListener
答案 1 :(得分:14)
您需要导入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
}
}
答案 2 :(得分:10)
仍然无法解决错误类型import View.OnClickListener;
,然后将光标移到import View.OnClickListener;
中的视图上它将打开弹出窗口,然后选择“组织导入”选项。
在顶部使用import View.OnClickListener;
。
答案 3 :(得分:3)
您正在实施的OnClickListener
是错误的。它说它是DialogInterface.OnClickListener
,而你可能想要View.OnClickListener
。您可以在相应的import
声明中更正该内容。
答案 4 :(得分:2)
只做一件事。在程序顶部使用“import android.view.View.OnClickListener”语句。
答案 5 :(得分:1)
做一件事
删除导入android.content.DialogInterface.OnClickListener; 和进口 的 android.View.View.OnClickListener 强>
这将解决问题
快乐编码
答案 6 :(得分:0)
实施View.view.onClickListener