کلیدستان

نسخه‌ی کامل: نحوه اجرا کردن کدهای کلاس (در اندروید)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
بر اساس کلید زیر که مربوط به چک کردن اینترنت میشه (روش اول):
http://www.kelidestan.com/keys/keys.php?key=287

لطفاً توضیح بدید که منظور از این قسمت که پایین نوشتم چیست؟؟
________________________________________________________________________________________________________
دقت شود که در کد بالا، خط زیر، کدهایی است که در صورت درست بودن اتصال به اینترنت، می خواهیم اجرا شود : new GetData().execute();پس یک کلاس با نام GetData باید بسازید که حاوی کدهای لازم باشد (که اگر اتصال به اینترنت، درست بود، اجرا شود و در غیر این صورت، پیامی توسط روش Toast به کاربر نمایش داده شود.)نحوه اجرا کردن کدهای کلاس NetCheck (ساخت شیء (object) از روی این کلاس و سپس اجرا کردن کدهای آن)، برای چک کردن اینترنت، به صورت زیر می باشد : new NetCheck().execute();
 
سلام.
اجازه بدهید بخشی از آن کدها را ذکر کنم :

کد پی‌اچ‌پی:
if(th == true){
                        
nDialog.dismiss();
                        new 
GetData().execute();
                    }
                    else{
                        
nDialog.dismiss();
                        
Toast.makeText(getApplicationContext(), "Error in Network Connection"Toast.LENGTH_SHORT).show();
                    } 

به کلید مورد نظر رفته و این بخش از کدها را بیابید. 
در کد بالا، تعیین کرده ایم که اگر گوشی به اینترنت متصل بود، کد زیر اجرا گردد :

کد پی‌اچ‌پی:
nDialog.dismiss();
new 
GetData().execute(); 

و اگر به اینترنت متصل نبود، کد زیر اجرا شود :

کد پی‌اچ‌پی:
nDialog.dismiss();
Toast.makeText(getApplicationContext(), "Error in Network Connection"Toast.LENGTH_SHORT).show(); 

که در هر دو مورد، خط اول کدها، مربوط به عدم نمایش Dialog است. یعنی Dialog دیگر نمایش داده نشود. اما برای هنگامی که متصل به اینترنت است، کد زیر بعد از آن اجرا می شود :

کد پی‌اچ‌پی:
new GetData().execute(); 

که از کلاسی با نام GetData (که خود کاربر می تواند آن را به دلخواه تعریف کند و کدهای مورد نظرش را در آن کلاس بنویسد)، یک شیء ساخته و آن را اجرا کرده ایم. اکنون اگر با مفاهیم کلاس (Class) و شیء آشنایی ندارید، می توانید کدهای مورد نظر خود را جایگزین آن کنید.
بد نیست نگاهی به کلید زیر بیندازید :

کلید شماره 2408 

در مورد کلاس ها (Classes)، دسته بندی زیر را ببینید :

http://www.kelidestan.com/keys/categorie...ategory=30

سپاس سپاس سپاااس
چیزی رو فراموش نکردید؟

برای اجرای کلاسی که نوشتم ، اگر بعد از کد زیر در MainActivity:
کد پی‌اچ‌پی:
@Override
    
protected void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.activity_main); 

این کد رو بنویسم:
کد پی‌اچ‌پی:
new NetCheck().execute(); 

کلاس اجرا میشه؟؟ امتحان کردم نشد

در واقع میخوام به محض اجرای برنامه اندرویدم، این کلاس اجرا بشه، چ کنم؟

نمای کلی کد رو ببینید:
کد پی‌اچ‌پی:
public class MainActivity extends Activity {
    
    
    private class 
NetCheck extends AsyncTask<String,String,Boolean>{
    
    @
Override
    
protected Boolean doInBackground(String... args){

        
ConnectivityManager cm = (ConnectivityManagergetSystemService(Context.CONNECTIVITY_SERVICE);
        
NetworkInfo netInfo cm.getActiveNetworkInfo();
        if (
netInfo != null && netInfo.isConnected()) {
            try {
                
URL url = new URL("http://www.google.com");
                
HttpURLConnection urlc = (HttpURLConnectionurl.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){
            
            
Toast.makeText(getApplicationContext(), "yes"Toast.LENGTH_SHORT).show();
        }
        else{
            
            
Toast.makeText(getApplicationContext(), "Error in Network Connection"Toast.LENGTH_SHORT).show();
        }
    }
    }

    
    
    @
Override
    
protected void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.activity_main);
            

        new 
NetCheck().execute();



به این صورت باید کلاس اجرا بشه؟ آخه نشد... چجوری میگیم که اجرا بشه؟