Android:当我为logoImage设置setOnClickListener()时出错

时间:2013-01-08 16:36:44

标签: java android

我在android上运行这个应用程序时遇到错误:

错误: - >>“不幸的是,exampleapp已经停止了”

请帮助我..当我删除该行时:

logoImage.setOnClickListener(this);

没有问题,它工作得很好..我认为我在setOnClickListener()时犯了一些错误。

谢谢你!

    package com.hightrax.mrgod;
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.ImageView;

    public class Main extends Activity implements OnClickListener
    {

    ImageView logoImage;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        logoImage = (ImageView) findViewById(R.drawable.logo);
        logoImage.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    }
    }

3 个答案:

答案 0 :(得分:1)

findViewById必须有一个参数,即资源ID。你添加了一个可绘制的ID。

如果您的ImageView具有ID“imageView1”,那么您应该: logoImage = (ImageView) findViewById(R.id.imageView1);

答案 1 :(得分:0)

此:

logoImage = (ImageView) findViewById(R.drawable.logo);

......应该是这样的:

logoImage = (ImageView) findViewById(R.id.logo);

...还希望您的布局XML中包含<ImageView />,其ID为@+id/logo,类似于:

<ImageView
    android:id="@+id/logo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
/>

如果您的ImageView未使用ID @+id/logo,那么只需将上面的R.id.logo更改为您选择的内容即可。 : - )

TLDR:您正在尝试根据Drawable的资源标识符查找视图。这与您为ImageView提供的标识符不同。

答案 2 :(得分:0)

更改

logoImage = (ImageView) findViewById(R.drawable.logo);

logoImage = (ImageView) findViewById(R.id.logo);