ورود

View Full Version : استفاده از configuration و Instance در کلاس Application



sina4everafter
دوشنبه 05 خرداد 1393, 11:57 صبح
سلام دوستان.اگر امکانش هست من و راهنمایی کنید.ممنون.

من یه برنامه ای نوشتم که از کلاس Application ارث بری می کنه.توی کد زیر می خواستم بدونم که دقیقا نقش Instance و configuration چیه؟نمی دونم چرا مقدار locale و Instance، و null در نظر گرفته.ممنون اگر راهنماییم کنید.
package ir.blog.javaroid.bmicalculator;

import java.util.Locale;


import android.app.Application;
import android.content.Context;
import android.content.res.Configuration;


public class ThisApplication extends Application {
public static ThisApplication Instance = null;

public Locale locale = null;


@Override
public void onCreate() {
super.onCreate();
Instance = this;
}

public void updateLanguage(Context context){
Locale.setDefault(ThisApplication.Instance.locale) ;
Configuration config = new Configuration();
config.locale = ThisApplication.Instance.locale;
context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
}
}

sina4everafter
دوشنبه 05 خرداد 1393, 19:09 عصر
دوستان اگر کسی اطلاع داره راهنمایی کنه.ممنون.

smemamian
دوشنبه 05 خرداد 1393, 23:42 عصر
سلام
Instance یک شیء از کلاس ThisApplication هست و ازآنجایی که بــــه صـــــــورت
Static تعریف شده پس در تمامی نمونه شیء هــای ساخته شـــــده از ایــن کلاس
ثابت خواهد بود. این نمونه ابتدا به صورت null تعریف شده و در onCreate مقــــــدار
دهی می شود این بدین معنی ِ که این شیء زمانی در دسترس خواهد بودکه این
کلاس یعنی ThisApplication اجرا شود. توسط این شیء شما می توانید به مقدار
یا مقادیر کلاس دسترسی داشته باشید. (در اینجا locale).
کلاس Locale برای تنظیمات زبانی برنامه استفاده می شود. در خط 24 فراخوانــی
تابع setDefault انجام شده است. این تابـــــــع یک شیء از کـــلاس Localeی کـــه
در اون شی زبان مشخص می شود رو قبول می کند. پس مطمئناً شیء ساختـــه
شده از کلاس Locale در خط 14 با اسم locale جایی درکلاس شما (یا حتی بیرون
کلاس شما چون public تعریف شده است.) تعریف می شود و مقدار می گـــــــیرد.
کلاس configurations برای پیکربندی device استفاده می شود مانند: زبان یا سایز
صفحه وغیره... .
در خط 27 تابع updateConfiguration فراخوانی شده است چرا کــــــه قــــرار هســت
تنظیماتی در زمان اجرای برنامه بروز شود. (در اینجا زبان)
موفق و پایدار باشید.