【问题标题】:setOnClickListener syntax errorsetOnClickListener 语法错误
【发布时间】:2013-11-25 23:40:36
【问题描述】:

我是新来的,所以如果这个问题有点琐碎,我很抱歉!

我正在尝试设置一个可点击的ImageView 以链接到一个网站,但我的setOnClickListener 出现语法错误,我无法弄清楚。我敢肯定这是一个直截了当的错误,但如果有人能指出我正确的方向,将不胜感激!

下面是我的代码:

public class VideoActivity extends Activity {
    ImageView blipImg = (ImageView)findViewById(R.id.videoBlip);
    blipImg.setOnClickListener = (new View.OnClickListener(){
        public void onClick(View v){
             Intent intent = new Intent();
             intent.setAction(Intent.ACTION_VIEW);
             intent.addCategory(Intent.CATEGORY_BROWSABLE);
             intent.setData(Uri.parse("http://blip.tv"));
            startActivity(intent);
        }
    });
}

【问题讨论】:

  • 去掉(new View.OnClickListener)前面的=
  • 也可以在xml中定义onclicklistener。这是一个例子link

标签: java android syntax-error


【解决方案1】:

这样做:

blipImg.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);
    intent.addCategory(Intent.CATEGORY_BROWSABLE);
    intent.setData(Uri.parse("http://blip.tv"));
    startActivity(intent);
}
});

【讨论】:

    【解决方案2】:

    改成

      blipImg.setOnClickListener(new View.OnClickListener(){ // remove =
    

    并添加@Override注解

    blipImg.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            intent.addCategory(Intent.CATEGORY_BROWSABLE);
            intent.setData(Uri.parse("http://blip.tv"));
            startActivity(intent);
            }
       });
    

    并将代码移至onCreate,如下所示

    public class VideoActivity extends Activity {
    ImageView blipImg;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.yourlayout);
       blipImg = (ImageView)findViewById(R.id.videoBlip);
       blipImg.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            intent.addCategory(Intent.CATEGORY_BROWSABLE);
            intent.setData(Uri.parse("http://blip.tv"));
            startActivity(intent);
            }
       });
     }
    }
    

    【讨论】:

    • 刚刚尝试了您的建议,它已经删除了错误。非常感谢!
    【解决方案3】:

    使用这个 "=" 符号不会出现在 setonclicklistener 中

        public class VideoActivity extends Activity {
    ImageView blipImg = (ImageView)findViewById(R.id.videoBlip);
    blipImg.setOnClickListener(new View.OnClickListener(){
        public void onClick(View v){
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            intent.addCategory(Intent.CATEGORY_BROWSABLE);
            intent.setData(Uri.parse("http://blip.tv"));
            startActivity(intent);
        }
    });
    }
    

    【讨论】:

      【解决方案4】:

      您的代码应该在方法体中,例如onCreate() 而不是在类正文中。

      同时删除setOnClickListener之后的=

      例子:

      public class VideoActivity extends Activity {
        @Override
        public void onCreate(Bundle savedInstance) {
          super.onCreate(savedInstance);
      
          setContentView(R.layout.some_layout_that_contains_videoBlip);
      
          ImageView blipImg = (ImageView)findViewById(R.id.videoBlip);
          blipImg.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){
              Intent intent = new Intent();
              intent.setAction(Intent.ACTION_VIEW);
              intent.addCategory(Intent.CATEGORY_BROWSABLE);
              intent.setData(Uri.parse("http://blip.tv"));
              startActivity(intent);
            }
          });
        }
      }
      

      【讨论】:

        【解决方案5】:

        用这个替换你的代码

        blipImg.setOnClickListener(new OnClickListener() 
        {
            @Override
            public void onClick(View v) 
            {
                Intent intent = new Intent();
                intent.setAction(Intent.ACTION_VIEW);
                intent.addCategory(Intent.CATEGORY_BROWSABLE);
                intent.setData(Uri.parse("http://blip.tv"));
                startActivity(intent);
            }
        });
        

        【讨论】:

          【解决方案6】:

          将您的代码放入onCreate 方法中。和setcontentview 然后执行这些步骤。因为一个java类应该只有变量和方法,所有的定义都应该在一个方法中。

          public class VideoActivity extends Activity {
          @Override
          public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.your_layout); //your layout which contains imageview with id R.id.videoBlip
             ImageView blipImg = (ImageView)findViewById(R.id.videoBlip);
             blipImg.setOnClickListener (new View.OnClickListener(){ //remove = symbol
                public void onClick(View v){
                   Intent intent = new Intent();
                   intent.setAction(Intent.ACTION_VIEW);
                   intent.addCategory(Intent.CATEGORY_BROWSABLE);
                   intent.setData(Uri.parse("http://blip.tv"));
                   startActivity(intent);
                } 
             });
          }
          }
          

          希望对你有帮助。

          【讨论】:

            【解决方案7】:

            请在您的代码中删除“=” 试试这个

            public class VideoActivity extends Activity {
              @Override
            public void onCreate(Bundle savedInstance) {
            super.onCreate(savedInstance);
            
            setContentView(R.layout.yourlayout);
            
            ImageView blipImg = (ImageView)findViewById(R.id.videoBlip);
            blipImg.setOnClickListener(new View.OnClickListener(){
              public void onClick(View v){
                Intent intent = new Intent();
                intent.setAction(Intent.ACTION_VIEW);
                intent.addCategory(Intent.CATEGORY_BROWSABLE);
                intent.setData(Uri.parse("http://blip.tv"));
                startActivity(intent);
              }
            });
            

            } }

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-04-02
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多