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