Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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 更改ImageView图像,变量错误?_Android_Sdk - Fatal编程技术网

Android 更改ImageView图像,变量错误?

Android 更改ImageView图像,变量错误?,android,sdk,Android,Sdk,我试图在imageview中更改图像,但当我在oncreate中设置变量时,它会给我一条黄线,使我无法更改图像 在此应用程序中,我正在检查Internet连接。基本上,如果互联网连接是可用的,我想显示一个特定的图像;如果不是的话,我想展示一张图片 这是我的密码: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentV

我试图在imageview中更改图像,但当我在oncreate中设置变量时,它会给我一条黄线,使我无法更改图像

在此应用程序中,我正在检查Internet连接。基本上,如果互联网连接是可用的,我想显示一个特定的图像;如果不是的话,我想展示一张图片

这是我的密码:

  @Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    ImageView imagev = (ImageView) findViewById(R.id.imageView1);

    Button btnStatus = (Button) findViewById(R.id.btn_check);

    // creating connection detector class instance
    cd = new ConnectionDetector(getApplicationContext());

    /**
     * Check Internet status button click event
     * */
    btnStatus.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {

            // get Internet status
            isInternetPresent = cd.isConnectingToInternet();

            // check for Internet status
            if (isInternetPresent) {
                // Internet Connection is Present
                // make HTTP requests
                showAlertDialog(AndroidDetectInternetConnectionActivity.this, "Internet Connection",
                        "You have internet connection", true);
                imagev.setImageDrawable(getResources().getDrawable(R.drawable.withinternet));

            } else {
                // Internet connection is not present
                // Ask user to connect to Internet
                showAlertDialog(AndroidDetectInternetConnectionActivity.this, "No Internet Connection",
                        "You don't have internet connection.", false);
                imagev.setImageDrawable(getResources().getDrawable(R.drawable.nointernet));
            }
        }

    });

}

您需要将ImageView声明为最终版本,以便在内部类中使用它:

final ImageView imagev = (ImageView) findViewById(R.id.imageView1);
顺便说一句,Eclipse应该显示错误消息

无法在内部类中引用非最终变量imagev 用不同的方法定义


将图像视图声明为类变量,即应在onCreate之前(作为类变量)而不是在其内部声明imageV。它将解决您的问题。

公共类{activity\u name}扩展活动 { 静态图像视图图像v

@凌驾 创建时的公共void(Bundle savedInstanceState){


}

我仍然收到imagev下面的黄线,要求我删除或抑制它说“未使用局部变量imagev的值”。非常感谢,我太迷茫了。我不敢相信这会像将代码上移几行那么简单!将imagev声明为静态。我相信您无法在另一个类中访问它。(这里是OnClickListener()是OnClickListener的新实例)。现在应该可以工作了。只需将{activity_name}更改为您的活动名称即可。
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


//ImageView imagev = (ImageView) findViewById(R.id.imageView1);
 //This activity name. Mainactivity if it is so.
  {activity_name}.imagev = (ImageView) findViewById(R.id.imageView1);

Button btnStatus = (Button) findViewById(R.id.btn_check);

// creating connection detector class instance
cd = new ConnectionDetector(getApplicationContext());

/**
 * Check Internet status button click event
 * */
btnStatus.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {

        // get Internet status
        isInternetPresent = cd.isConnectingToInternet();

        // check for Internet status
        if (isInternetPresent) {
            // Internet Connection is Present
            // make HTTP requests
            showAlertDialog(AndroidDetectInternetConnectionActivity.this, "Internet Connection",
                    "You have internet connection", true);
            {activity_name}.imagev.setImageDrawable(getResources().getDrawable(R.drawable.withinternet));

        } else {
            // Internet connection is not present
            // Ask user to connect to Internet
            showAlertDialog(AndroidDetectInternetConnectionActivity.this, "No Internet Connection",
                    "You don't have internet connection.", false);
            {activity_name}.imagev.setImageDrawable(getResources().getDrawable(R.drawable.nointernet));
        }
    }

});