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

تنظیمات


amardia

سوال

با سلام خدمت اساتید گرامی

من برای قسمت تنظیمات برنامه م ، از این کد ها استفاده کردم :


Sub Process_Globals
   Dim font As String
   Dim size As Int
   Dim color As Int


End Sub


Sub Globals
   Private Label1 As Label
   Private Label2 As Label
   Private Label3 As Label
   Private Label4 As Label
   Private Spinner1 As Spinner
   Private SeekBar1 As SeekBar
   Private RadioButton1 As RadioButton
   Private RadioButton2 As RadioButton
   Private RadioButton3 As RadioButton
   Private Button1 As Button


End Sub


Sub Activity_Create(FirstTime As Boolean)
   Activity.LoadLayout("setting")

   For i = 1 To 6
   Spinner1.Add("font"&i)
   Next

End Sub


Sub Activity_Resume


End Sub


Sub Activity_Pause (UserClosed As Boolean)


End Sub






Sub Button1_Click
   font = Spinner1.SelectedItem

   size = SeekBar1.Value

   If RadioButton1.Checked Then
   color=1
   End If
   If RadioButton2.Checked Then
   color=2
   End If
   If RadioButton3.Checked Then
   color=3
   End If
   StartActivity("menu")
   Activity.Finish

End Sub
Sub Spinner1_ItemClick (Position As Int, Value As Object)
   Label3.Typeface=Typeface.LoadFromAssets(Value & ".ttf")
End Sub
Sub SeekBar1_ValueChanged (Value As Int, UserChanged As Boolean)
   Label3.TextSize=Value
End Sub
Sub RadioButton1_CheckedChange(Checked As Boolean)
   If Checked Then
   Label3.TextColor=Colors.Black
   End If
End Sub
Sub RadioButton2_CheckedChange(Checked As Boolean)
   If Checked Then
   Label3.TextColor=Colors.Green
   End If
End Sub
Sub RadioButton3_CheckedChange(Checked As Boolean)
   If Checked Then
   Label3.TextColor=Colors.Red
   End If

End Sub


Sub Activity_KeyPress (KeyCode As Int) As Boolean
  If KeyCode = KeyCodes.KEYCODE_BACK Then
  StartActivity("menu")
  Activity.Finish
  End If
End Sub

و برای اجرای تنظیمات یا همون apply شدنش در داخل برنامه ، از این کدها استفاده کردم :

Sub Globals


   Private Label1 As Label
   Private Button1 As Button
   Private Button2 As Button
   Private ImageView1 As ImageView
End Sub


Sub Activity_Create(FirstTime As Boolean)
   Activity.LoadLayout("koodak")
   Label1.TextSize=setting.size
   Label1.Typeface=Typeface.LoadFromAssets(setting.font & ".ttf")
   Dim su As StringUtils
   Label1.Height=su.MeasureMultilineTextHeight(Label1,Label1.Text)
   Select Case setting.color
   Case 1
   Label1.TextColor=Colors.Black
   Case 2
   Label1.TextColor=Colors.Green
   Case 3
   Label1.TextColor=Colors.Red
   End Select


End Sub

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

:an error accured in sub
juva.lang.runtimeExcepction :
native typeface cannot be made
continue ?

اگه میشه ، راهنماییم کنید .

ممنون از لطفتون

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

10 پاسخ به این سوال تاکنون داده شده است

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

خب ، بحمدلله ، مشکل حل شد ،

حالا من اگه بخوام سیک بارم (seekbar ) تو قسمت اندازه ی فونت ، از یه سایزی شروع بشه و تا یه سایز مشخص تموم بشه ، (مثلاً تو تنظیمات قسمت اندازه فونت سیک بار از سایز 10 تا 25 کشیده بشه )چه کدی باید وارد برنامه کنم ؟

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

sb.value = 10
sb.max = 30

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

شما جای کد apply اینو بزنید

Sub Globals


   Private Label1 As Label
   Private Button1 As Button
   Private Button2 As Button
   Private ImageView1 As ImageView
End Sub


Sub Activity_Create(FirstTime As Boolean)
   Activity.LoadLayout("koodak")
   Dim su As StringUtils
   Label1.Height=su.MeasureMultilineTextHeight(Label1,Label1.Text)
      Label1.TextSize=setting.size
   Label1.Typeface=Typeface.LoadFromAssets(setting.font & ".ttf")
   Select Case setting.color
   Case 1
   Label1.TextColor=Colors.Black
   Case 2
   Label1.TextColor=Colors.Green
   Case 3
   Label1.TextColor=Colors.Red
   End Select


End Sub 


بعد شما توی پوشه فایل اومدین اسم فونت رو چی دادین میشه یع عکس چیزی بزارید شاید توی پوشه فایل یه اشتباهی کرده باشید

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

اسم فونت ها رو گذاشتم : font1 font2 font3 font4 font5 font6

متاسفانه نمی تونم چه مرضی داره مرورگرم که نمی تونم عکس بذارم .

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

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

برنامه رو با شبیه ساز در حالت Debug(Legacy اجرا کنید . قشنگ بهتون میگه که مشکل از کدوم خط است

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

بنده هم واسه تنظیمات برنامم دقیقا همین مشکل رو داشتم . دقیقا همین . انقدر باهاش سر و کله زدم که حد نداره آخرش دیگه راهی پیدا نکردم کل تنظیماتو پاک کردم .

من فکر میکنم شاید وقتی از تکست و لیبل استفاده بشه تنظیمات مشکل پیدا میکنه . شاید با دیتابیس دیگه مشکل نداشته باشه . مشکل اینجاس که وقتی برای بار اول برنامه باز میشه نمی تونه فونت رو شناسایی کنه و روی لیبل ها اعمال کنه واسه همین ارور تایپ فیس میده اما وقتی بری فونت رو از توی تنظیمات انتخاب کنی و قرار بدی و ذخیره کنی دیگه مشکلی نداره و متن ها درست میاد . شاید اگر یه فونت native به متن بدیم مشکلش حل بشه . من امتحام نکردم . اما پیشنهاده . یعنی به متن هات فونت بدی . بعد وقتی برنامه برای بار اول باز بشه اون فونت رو که به متن دادی اعمال میکنه و ارور نمیده . و بعد که کاربر تنظیمات عوض کرد فونت هم دیگه عوض میشه . البته این فقط در حد حدسه . نمی دونم انجام میشه یا نه . هر چند ممکنه دفعات بعدی که برنامه باز بشه باز نیاز به تغییر تنیمات داشته باشه . در کل فکر میکنم با دیتابیش حل شه

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

سلام دوست عزیز خوب کد تنظیمات رو به این تغییر بده(البته در قسمت کلیک باتن)

Sub Button1_Click
font = Spinner1.SelectedItem

   size = SeekBar1.Value

   If RadioButton1.Checked Then
   color=1
   End If

   If RadioButton2.Checked Then
   color=2
   End If

   If RadioButton3.Checked Then
   color=3
   End If
    StartActivity("menu")
Activity.Finish

Dim list1 As List
   list1.Initialize
   list1.Add(font)
   list1.Add(size)
   list1.Add(color)
   File.WriteList(File.DirInternal,"Settings.stg",list1)
End Sub

و در قسمت Applyهم این کد رو در قسمت Sub Activity_Create(FirstTime As Boolean) اضافه کن.(البته در اینجا Tanzimat2همان اکتیویتی تنظیمات است.)

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

   Else
   Tanzimat2.font="font2"
   Tanzimat2.size=20
   Tanzimat2.color=2
   End If

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

آقا ببخشید ، مشکلم حل نشده !

یعنی اون مشکل خطا دادن و اینا حل شده ، اما اول اینکه این کدی که بعد از else گذاشتیم تا فونت و رنگ و سایز پیش فرض رو تعیین کرده باشیم رو اجرا نمی کنه ، و همون چیزی که تو لایوت تنظیم شده رو نشون میده

بعدشم ، تنظیماتی که ذخیره کردیم ، apply نمیشه !

واقعا چرا ؟

please help me !!

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

آقای amardia من تست کردم اعمال شد . مشکلی هم نداشت . مشکلت کجاس دقیقا . اگه میتونی سورس تنظیماتتو بزار .

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

بایگانی شده

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

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

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