بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
سوال در مورد چک کردن اینترنت و لود دوباره اکتیویتی
سلام دوستان من یک کلاس اینترنت دارم که برای چک کردن گذاشتم و در اکتیویتی هام صدا می زنم و اگر ارتباط قطع بود میره به یه اکتیویتی دیگه که button گذاشتم که روش کلیک بشه و تا وقتی که اینترنت فعال شه اون صفحه بسته شه.
حالا چی بنویسم در onclick که وقتی بسته شد اکتیویتی پشتش دوباره لود شه همون جوری ثابت نمونه؟؟
public class ConnectionDetector {
public ConnectionDetector(Context context) {
G.context = context;
}
public static boolean isConnectingToInternet() {
ConnectivityManager cm = (ConnectivityManager) G.context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
} else {
// not connected to the internet
Intent in = new Intent(G.context, ConnectionLost.class);
G.context.startActivity(in);
}
return false;
}
ConnectionLost اینم کلاس بعدیم
btnTry.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(ConnectionDetector.isConnectingToInternet()) {
ConnectionLost.this.finish();
}
}
});
}
0
0
سلام دوست عزیز اگه من منظور شمارو درست فهمیده باشم شما توی متد onresume همون اکتیوی که میخوای دوباره لود بشه میتونی دستوراتی که داری برای نمایش اطلاعات استفاده میکنی همونارو تو onresume هم بنویسی تا به محض اینکه اون activity دوباره اجرا میشه اون دستورات هم اجرا بشه امیدوارم درست بشه (10 سال پیش)
0
0
یعنی لازم نیست در کلاسی که button سعی مجدد هستش کاری انجام بدم؟ یعنی تو تمام اکتیویتی هام برم onresume ست کنم و مثلا AsyncTask اطلاعاتم رو بزارم داخلش؟ (10 سال پیش)
0
0
با onRestart تست کردم کار کرد! پس مشکلی نیست اینجوری اره؟ در تمام اکتیویتی هام onRestart رو ست کنم؟ نمیشه یه طوری باشه که نخواد در همه اکتیویتی ها ست بشه؟ (10 سال پیش)
+1
0
نیازی نیست به اکتیویتی دیگه ای برید یک ویو کاستوم ایجاد کنید و روی View اصلی اورلی قرار بدید ، اگر نت قطع بود نشونش میده اگر وصل بود GONE میشه . (10 سال پیش)
0
0
من این کارو انجام دادم ولی می خوام اکتیوتی پشت سرش دوباره لود شه. دیتا می خوام رفرش شه . چکار کنم؟ (9 سال پیش)
برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال
علی
10 سال پیش
0
0
اقای کاشی زاده من این کاستوم رو درست کردم . ولی نفهمیدم کجا بزارمش. من یه main اصلی دارم که یه عالمه فرگمنت و اکتیویتی داره .
public class CustomViewInternet extends LinearLayout {
public CustomViewInternet(Context context, AttributeSet attrs) {
super(context, attrs);
initializer(context);
}
public CustomViewInternet(Context context) {
super(context);
initializer(context);
}
private void initializer(Context context) {
if (isInEditMode()) {
return;
}
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View customView = inflater.inflate(R.layout.custom_view_internet, this);
Button btnTry = (Button) customView.findViewById(R.id.btn_Try);
final LinearLayout linerLayout = (LinearLayout) customView.findViewById(R.id.linerLayout);
btnTry.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (ConnectionDetector.isConnectingToInternet()) {
linerLayout.setVisibility(View.GONE);
}
}
});
}
}
پاسخ به سوال
علی
10 سال پیش
0
0
من در MainActivioty این رو نوشتم . فقط در لحظه ورود به برنامه ظاهر میشه . می خوام همه جا باشه و وقتی رو button کلیک کردم و اینترنت بود صفحه لود بشه . همون جوری بدون اطلاعات نمونه که بخواد بک بزنیم دوباره صفحه رو باز کنیم تا لود انجام شه.
CustomViewInternet vc = (CustomViewInternet) findViewById(R.id.vc) ;
if(!ConnectionDetector.isConnectingToInternet()){
vc.setVisibility(View.VISIBLE);
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .