Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 类型视图中的setOnClickListener(View.OnClickListener)不适用于参数(SequenceActivity)back.setOnClickListener(this);_Android - Fatal编程技术网

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)必须重写或实现超类型方法 下面是给出这

我想在单击按钮时显示图像,但我的代码中有三个错误。怎么了

  • 类型SequencePractivity必须实现继承的抽象方法
    DialogInterface.OnClickListener.onClick(DialogInterface,int)

  • 类型视图中的方法
    setOnClickListener(View.OnClickListener)
    不适用于参数
    (SequenceActivity)

  • 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
        }
    }