PDA

View Full Version : چحوری این تیکه کد رو از اکتیویتی ببرم توی کلاس ؟ هرکاری میکنم ارور میده



alighasemi99
جمعه 24 اردیبهشت 1395, 17:57 عصر
سلام
یه قطعه کدی برای چک کردن اینترنت کانکشن از تو یه وبسایتی گیر آوردم نوشتم که فقط توی اکتیویتی کار میکنه و برای هر قسمت برنامم باید بیخودی این کد رو تکرار کنم
چحوری میتونم اونو بدون اینکه ارور بده توی یه کلاس وارد کنم و همه جای برنامم با فراخوانی ازش استفاده کنم ؟
این کدو الان از اکتیویتی میبرم توی کلاس ارور کانستراکتور میده ولی هرکاری میکنم مشکلش حل نمیشه
لطفا راهنماییم کنین


public void ShowAlertDialog() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(LearnActivity.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() {

@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
new NetCheck().execute();
}
});
// Setting Negative "NO" Button
alertDialog.setNegativeButton(R.string.no,
new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// Write your code here to invoke NO event
dialog.cancel();
}
});
// Showing Alert Message
alertDialog.show();
}


public class NetCheck extends AsyncTask<String, String, Boolean>
{

private ProgressDialog nDialog;


@Override
protected void onPreExecute() {
super.onPreExecute();
nDialog = new ProgressDialog(LearnActivity.this);
nDialog.setTitle("Checking Network");
nDialog.setMessage("Loading..");
nDialog.setIndeterminate(false);
nDialog.setCancelable(true);

nDialog.show();
}


@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) {
e1.printStackTrace();
}
catch (IOException e) {
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_LONG).show();
// new GetData().execute();
}
else {
nDialog.dismiss();
ShowAlertDialog();
}
}
}

amirxbest
جمعه 24 اردیبهشت 1395, 18:08 عصر
یه کلاس جدا بساز و بعد این متد رو به صورت public static تعریف کن که بتونی همه جای برنامه(پکیج) ازش استفاده کنی بدون ساختن شی.و با استفاده از نام کلاس و . و بعد نام متد ازش استفاده کنی.

alighasemi99
شنبه 25 اردیبهشت 1395, 14:11 عصر
یه کلاس جدا بساز و بعد این متد رو به صورت public static تعریف کن که بتونی همه جای برنامه(پکیج) ازش استفاده کنی بدون ساختن شی.و با استفاده از نام کلاس و . و بعد نام متد ازش استفاده کنی.



از دیروز تاحالا نتونستم.
این کد بالا توی اکتیویتی کار میکنه ولی توی کلاس میبرم میگه کانستراکتور تعریف نشده
خواهش میکنم اگه ممکنه درستش کنین چون خیلی لازم دارم

loo30fer
شنبه 25 اردیبهشت 1395, 15:29 عصر
ببینید این کارتون راه میندازه :
http://stackoverflow.com/questions/9570237/android-check-internet-connection
به روش های مختلفی پیاده شده