سلام،
من دوتا دکمه دارم که برای هر دو میخوام وقتی کلیک میشن اول اتصال رو چک کنند. من کد رو به صورت زیر نوشتم ولی یک مشکلی هست ، تا دکمه ای که کد آن بالا تر نوشته شده کلیک نشه ، دکمه ای که کدش پایین تر نوشته شده اجرا نمیشه... آیا کروشه ای مشکل داره؟؟؟؟ لطفاً راهنمایی کنید
من دوتا دکمه دارم که برای هر دو میخوام وقتی کلیک میشن اول اتصال رو چک کنند. من کد رو به صورت زیر نوشتم ولی یک مشکلی هست ، تا دکمه ای که کد آن بالا تر نوشته شده کلیک نشه ، دکمه ای که کدش پایین تر نوشته شده اجرا نمیشه... آیا کروشه ای مشکل داره؟؟؟؟ لطفاً راهنمایی کنید
کد پیاچپی:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageButton b3 = (ImageButton) findViewById(R.id.imageButton3);
b3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new NetCheck().execute();
}
});
}
public void ShowAlertDialog() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle(R.string.title);
alertDialog.setMessage(R.string.message);
alertDialog.setIcon(R.drawable.ic_launcher);
// Setting Positive "Yes" Button
alertDialog.setPositiveButton(R.string.yes,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
new NetCheck().execute();
}
});
// Setting Negative "NO" Button
alertDialog.setNegativeButton(R.string.no,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Write your code here to invoke NO event
dialog.cancel();
}
});
// Showing Alert Message
alertDialog.show();
}
/**
* Async Task to check whether internet connection is working.
**/
private class NetCheck extends AsyncTask<String,String,Boolean>
{
private ProgressDialog nDialog;
@Override
protected void onPreExecute(){
super.onPreExecute();
nDialog = new ProgressDialog(MainActivity.this);
nDialog.setTitle("Checking Network");
nDialog.setMessage("Loading..");
nDialog.setIndeterminate(false);
nDialog.setCancelable(true);
nDialog.show();
}
/**
* Gets current device state and checks for working internet connection by trying Google.
**/
@Override
protected Boolean doInBackground(String... args){
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected()) {
try {
URL url = new URL("http://www.google.com");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(3000);
urlc.connect();
if (urlc.getResponseCode() == 200) {
return true;
}
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return false;
}
@Override
protected void onPostExecute(Boolean th){
if(th == true){
nDialog.dismiss();
Toast.makeText(getApplicationContext(), "Your device is connected to internet !", Toast.LENGTH_SHORT).show();
// new GetData().execute();
}
else{
nDialog.dismiss();
ShowAlertDialog();
}
ImageButton b1 = (ImageButton) findViewById(R.id.imageButton1);
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new NetCheck().execute();
}
});
}
public void ShowAlertDialog() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle(R.string.title);
alertDialog.setMessage(R.string.message);
alertDialog.setIcon(R.drawable.ic_launcher);
// Setting Positive "Yes" Button
alertDialog.setPositiveButton(R.string.yes,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
new NetCheck().execute();
}
});
// Setting Negative "NO" Button
alertDialog.setNegativeButton(R.string.no,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Write your code here to invoke NO event
dialog.cancel();
}
});
// Showing Alert Message
alertDialog.show();
}
/**
* Async Task to check whether internet connection is working.
**/
private class NetCheck1 extends AsyncTask<String,String,Boolean>
{
private ProgressDialog nDialog;
@Override
protected void onPreExecute(){
super.onPreExecute();
nDialog = new ProgressDialog(MainActivity.this);
nDialog.setTitle("Checking Network");
nDialog.setMessage("Loading..");
nDialog.setIndeterminate(false);
nDialog.setCancelable(true);
nDialog.show();
}
/**
* Gets current device state and checks for working internet connection by trying Google.
**/
@Override
protected Boolean doInBackground(String... args){
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected()) {
try {
URL url = new URL("http://www.google.com");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(3000);
urlc.connect();
if (urlc.getResponseCode() == 200) {
return true;
}
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return false;
}
@Override
protected void onPostExecute(Boolean th){
if(th == true){
nDialog.dismiss();
Toast.makeText(getApplicationContext(), "Your device is connected to internet !", Toast.LENGTH_SHORT).show();
// new GetData().execute();
}
else{
nDialog.dismiss();
ShowAlertDialog();
}
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}