我正在尝试更改图像视图中的图像,但是当我在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));
}
}
});
}
答案 0 :(得分:1)
您需要将ImageView声明为final才能在内部类中使用它:
final ImageView imagev = (ImageView) findViewById(R.id.imageView1);
Btw Eclipse应显示错误消息
无法引用内部类中的非最终变量imagev 用不同的方法定义
答案 1 :(得分:1)
将图像视图声明为类变量,即imageV应在onCreate之前声明(作为类变量)而不是在其中。它会解决你的问题..
答案 2 :(得分:0)
public class {activity_name}扩展了Activity { 静态ImageView imagev;
@覆盖 public void onCreate(Bundle savedInstanceState){
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));
}
}
});
}