红线错误,代码正确

时间:2013-08-29 06:33:07

标签: java android eclipse android-studio

image

当代码正确时我有这个问题,但它给了我红线错误! 任何人都可以帮助我。

Main.java

package com.example.sout;

import android.content.DialogInterface;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import
      ~
import android.widget.ImageView;

public class Main extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    ImageView iv = (ImageView) findViewById(R.id.img1);
    iv.setBackgroundResource (R.anim.animation);
                              ~~~~~~~~~~~~~~~~
    iv.setOnClickListener(new OnClickListener());
                              ~~~~~~~~~~~~~~~  ~
}

in(注意上面的~个字符):

iv.setBackgroundResource (R.anim.animation);
iv.setOnClickListener(new OnClickListener());

setBackgroundResourcesetOnClickListener也是红色。

2 个答案:

答案 0 :(得分:3)

iv.setBackgroundResource (R.anim.animation);中的错误是因为该方法将整数作为参数。因此将其更改为以下内容,

  iv.setBackgroundResource (R.drawable.image1); //image1 is a drawable which is inside your drawable folder.

并出现第二个错误,因为您尚未导入所需的包,并且未覆盖所需的方法。将其更改为以下内容,

iv.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                //do your task here
            }
        });

更改后按ctrl + shift + p导入所需的包。

答案 1 :(得分:2)

有时候,至少在Eclipse中,它会让它陷入困境,并且它不会让它消失。但是,使用Eclipse,您至少可以将光标放在标记上,它将解释问题是什么(或认为是什么)。我会尝试将鼠标悬停在错误的行上,看看是否有弹出框告诉你它的想法。

如果你确定它是错的,我经常发现保存文件(或所有文件)会修复它。有时添加然后删除错误行上的空格将修复它。

但是,我注意到文件顶部有一个不完整的import,这可能会阻止语法检查程序正确分析源文件。

我的建议是首先修复它,然后尝试其他两个技巧(保存,如果不起作用,在错误的行上编辑和撤消)。希望这会让它消失。

当然,您可能希望检查一下R.java文件,以确保该成员存在于某处。我以前被自己的拼写错误所困扰。