رفتن به مطلب
  • 0

مشکل در اعمال تنظیمات (بسیار مهم)


MahdiHD

سوال

سلام به همه دوستان عزیز من با استفاده از کد زیر صفحه تنظیمات برنامه رو ساختم :

#Region  Activity Attributes 
	#FullScreen: True
	#IncludeTitle: False
#End Region

Sub Process_Globals
Dim Font As String
Dim Size As Int
End Sub

Sub Globals
Dim Color As ColorPickerDialog
	Private btncolor As Button
	Private BtnSave As Button
	Private FontSize As SeekBar
	Private FontType As Spinner
	Private Label1 As Label
	Private Label2 As Label
	Private Label3 As Label
	Private Label4 As Label
	Private Label5 As Label
	Private OpenList As Button
End Sub

Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("frm5")
FontType.AddAll(Array As String("BYEKAN","BKOODAK","BMITRA","MJLINER","BTITR"))
Label4.TextSize=18
FontSize.Value = Size
'Label1.Typeface=Typeface.LoadFromAssets("BYEKAN.TTF")
'Label2.Typeface=Typeface.LoadFromAssets("BYEKAN.TTF")
'Label3.Typeface=Typeface.LoadFromAssets("BYEKAN.TTF")
Label4.Typeface=Typeface.LoadFromAssets("Yekan.ttf")
Label5.Typeface=Typeface.LoadFromAssets("Yekan.ttf")
End Sub
Sub FontType_ItemClick (Position As Int, Value As Object)
If Position = 0 Then
Label4.Typeface=Typeface.LoadFromAssets("Yekan.ttf")
End If
If Position = 1 Then
Label4.Typeface=Typeface.LoadFromAssets("Koodak.ttf")
End If
If Position = 2 Then
Label4.Typeface=Typeface.LoadFromAssets("Mitra.ttf")
End If
If Position = 3 Then
Label4.Typeface=Typeface.LoadFromAssets("Linerscreen.ttf")
End If
If Position = 4 Then
Label4.Typeface=Typeface.LoadFromAssets("Btitrbd.ttf")
End If
End Sub
Sub FontSize_ValueChanged (Value As Int, UserChanged As Boolean)
Label4.TextSize=Value
Label5.Text=Value
End Sub
Sub btncolor_Click
 Color.Show("کلکسیون رنگ ها","انتخاب","انصراف","",LoadBitmap(File.DirAssets,"000.png"))
 'btncolor.Typeface=Typeface.LoadFromAssets("yekan.ttf")
 code.saveData("setting.txt","FontColor",Color.RGB)
 Label4.TextColor=Color.RGB
 'btncolor.TextColor=Color.RGB
End Sub
Sub BtnSave_Click
	Font=FontType.SelectedItem
	Size=FontSize.Value
	Dim list1 As List
	list1.Initialize
	list1.Add(Font)
	list1.Add(Size)
	File.WriteList(File.DirInternal,"Settings.stg",list1)
	ToastMessageShow("تنظیمات با موفقیت اعمال شد",False)
	StartActivity(Menu)
	Activity.Finish
End Sub


Sub OpenList_Click
	StartActivity(Menu)
	Activity.Finish
End Sub

و با استفاده از کد زیر تنظیمات رو در صفحه مطالب اعمال کردم :

label1.TextColor=Colors.Black

If File.Exists(File.DirInternal,"Settings.stg")=True Then
Dim list1 As List
list1=File.ReadList(File.DirInternal,"Settings.stg")
Setting.font=list1.Get(0)
Setting.size=list1.Get(1)

Dim a As String
a = code.getData("setting.txt","FontColor")
label1.TextColor = code.getData("setting.txt","FontColor")
Else
Setting.font="BYEKAN"
Setting.size=25
End If

label1.Typeface=Typeface.LoadFromAssets(Setting.font &".ttf")
label1.TextSize=Setting.size

و با استفاده از کد زیر یک code module با نام code ساختم:

Sub saveData(sFilename As String,sKey As String,sValue As String)
Dim m1 As Map
m1.Initialize
If File.Exists(File.DirInternal,sFilename) = True Then
 m1 = File.ReadMap(File.DirInternal,sFilename)
End If
m1.Put(sKey,sValue)
File.WriteMap(File.DirInternal,sFilename,m1)
End Sub


Sub getData(sFilename As String,sKey As String) As String
Dim m1 As Map
m1.Initialize
If File.Exists(File.DirInternal,sFilename) = True Then
  m1 = File.ReadMap(File.DirInternal,sFilename)
Else
  Return ""
End If
If m1.ContainsKey(sKey) = True Then
 Return m1.get(sKey)
Else
 Return ""
End If
End Sub

و این هم یک عکس از پوشه files برنامه من هست :

post-3189-0-08548000-1438935029_thumb.png

ولی وقتی وارد صفحه مطالب می شم به این خط در کد صفحه مطالب گیر می ده هر کاری کردم نتونستم مشکل رو رفع کنم و به همین خاطر مزاحم شما عزیزان شدم لطفا یک پاسخ کامل بدید که من باید چی کار کنم یا اگه راه دیگه ای رو پیشنهاد دارید بگید و کامل توضیح بدید بسیار ممنونم

label1.Typeface=Typeface.LoadFromAssets(Setting.font &".ttf")
لینک ارسال
به اشتراک گذاری در سایت های دیگر

ارسال‌های توصیه شده

این همون کد کپی هست دیگه ؟ راستی با چه کدی باید فونت ها رو توی فایل تکست ذخیره کنم ؟ آیا فونت ها توی فایل setting.txt ذخیره می شن یا باید کد بنویسم ؟ راستی با این کارها کاربر هر فونتی رو که انتخاب‌کنه روی متن اعمال می شه دیگه اخه اگه دقت کنین من شش تا فونت دارم اگر لطف‌کنید تغییرات مورد نیاز رو توی کد صفحه مطلب و کد صفحه تنظیمات که فرستادم اعمال‌کنید و بهم بدید که واقعا ممنون می شم این کد کپی رو هم خودم توی صفحه main می زارم خیلی خیلی ممنون

دوست عزیز :

شما در قسمت اکتیویتی اعمال تنظیمات باید در رویداد کلیک دکمه این رو بنوسید :

File.WriteString(File.DirInternal,"Font.txt",Spinner1.SelectedItem)

کد بالا یه فایل txt در dirinternal می سازه . با محتویات Value اون Spinner1 .

 

برای اعمال تنظیمات در صفحه مطلب به این شکل :

Dim Font as String
Font = File.ReadString(File.DirInternal,"Font.txt")
Label1.Typeface = Typeface.LoadFromAssets(Font & ".ttf")

در اکتیویتی main هم به این صورت :

If File.Exists(File.DirInternal,"Font.txt") = False Then
File.WriteString(File.DirInternal("Font.txt","BYekan")
End If

عزیز اگر کسی باشه که اصلا هم کد نویسی نکرده باشه می فهمه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

درسته من یکم گیج شده بودم توی این مبحث وگرنه من هم سی پلاس پلاس بلدم هم جاوا و حدود سه هفتس که بیسیک فور اندروید رو شروع کردم *تعریف از خود* فقط تا الان اینقدر گیج نشده بودم توی موضوع!!!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

مشکلی نداره برادرم

بعضی اوقات پیش میاد

الان مشکلت حل شد؟

اروری ، سوالی، چیزی اگه هست، بگو،همه مبتدی هستیم

پاسخش رو بدونیم، در خدمتت هستیم:gol:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...