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

اعمال تنظیمات بر روی چند اکتیویتی


imenz

سوال

سلام دوستان

من 9 تا اکتیویتی دارم که متن های همشونو از دیتابیس گرفتم

میخوام تنظیمات براش بسازم که روی همه اینا اعمال بشه و دکمه ذخیره هم داشته باشه

 

خدا خیرتون بده فقط لینک این دوتا رو ندید

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

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

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

ابتدا در صفحه لایوت پنج تا Label و دو تا Button و یک Spinner و یک SeekBar رو انتخاب کنید و نام های آنها رو به ترتیب مانند زیر قرار دهید تا در کدنویسی مشکلی پیش نیاد:

- در این قسمت Label ها را با نام پیش فرض قرار دهید و نامی برای آنها انتخاب نکنید

- و نام Spinner را FontType برای نمایش فونت ها قرار می دهیم

- و نام SeekBar را FontSize برای تغییر اندازه فونت ها قرار می دهیم

- و نام یکی از Button ها رو را btncolor برای انتخاب رنگ قرار می دهیم

- و نام یکی از Button ها رو را BtnSave برای ذخیره تغییرات قرار می دهیم

متن باتن اول رو انتخاب رنگ و متن باتن دوم رو ذخیره تغییرات قرار بده

 max value رو 32 و value رو 14 قرار بده در قسمت تنظیمات مربوط به SeekBar در صفحه دیزاینر

تنظیمات مکانی اون ها رو هم انجام بده :

Label1.Right=98%x
Label1.VerticalCenter=12%y
FontType.Right=60%x
FontType.VerticalCenter=12%y
Label2.Right=98%x
Label2.VerticalCenter=20%y
Label3.Right=98%x
Label3.VerticalCenter=40%y
Label5.Right=72%x
Label5.VerticalCenter=20%y
Label4.VerticalCenter=65%y
Label4.HorizontalCenter=50%x
FontSize.Right=60%x
FontSize.VerticalCenter=20%y
BtnSave.VerticalCenter=90%y
BtnSave.HorizontalCenter=50%x
btncolor.VerticalCenter=40%y
btncolor.HorizontalCenter=50%x

حالا یک اکتویتی جدید بساز و از کد زیر در اون استفاده کن فقط حواست باشه که نام لایوت رو نام لایوت خودت بزاری و به جای 000.png یه عکس خودت انتخاب کنی و بزاری بهتره یه عکس کوچیک باشه چون که وقتی کاربر روی دکمه انتخاب رنگ کلیک می کنه یک پیغام براش باز می شه ولیست رنگ ها رو بهش نمایش می ده و اون عکس ایکون اون پیغام هست و در آخر هم می تونی  فونت های خودت رو جایگزین فونت های داخل کد کنی نام اکتیویتی رو هم Setting قرار بده ...

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","BJADIDBD","BTITRBD","BZAR","BELHAM"))
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("BYEKAN.TTF")
Label5.Typeface=Typeface.LoadFromAssets("BYEKAN.TTF")
End Sub
Sub FontType_ItemClick (Position As Int, Value As Object)
If Position = 0 Then
Label4.Typeface=Typeface.LoadFromAssets("BYEKAN.TTF")
End If
If Position = 1 Then
Label4.Typeface=Typeface.LoadFromAssets("BJADIDBD.TTF")
End If
If Position = 2 Then
Label4.Typeface=Typeface.LoadFromAssets("BTITRBD.TTF")
End If
If Position = 3 Then
Label4.Typeface=Typeface.LoadFromAssets("BZAR.TTF")
End If
If Position = 4 Then
Label4.Typeface=Typeface.LoadFromAssets("BELHAM.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("BYEKAN.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

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

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")

حالا یک 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

راستی کتابخونه ی dialogs رو هم فعال کن

این شد یه آموزش کامل برای ساخت تنظیمات و اعمال اون در مطالب امیدوارم بتونی ازش استفاده کنی :ok:

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

شما ماژول ذخیره رنگ رو با نام code از نوع code module ساختی؟ نباید مشکلی باشه اما اگر رفع نشد سورس رو برام بفرست تا بررسی کنم

آره عزیز

شما مطمعنی مشکل از code module هست ؟؟

Sent from my HUAWEI P6-U06 using Tapatalk

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

از نظر من اموزش اقای نیما قبادی آموزش کتابخانه ساخت تنظیمات و ذخیره تنظیمات نسخه ی یک - آموزش های تصویری - برنامه نویسان بیسیک4اندروید بهترین اموزش میتونه باشه  تو این زمینه همراه با کتابخونه خوبی که برای اینکار ساختن اگه شما میگن برای یه لیبل توضیح دادن میتونی همون کار رو برای ده تا لیبل انجام بدی با این کتابخونه عالی واقعا کاری نداره اگه از روش دیگه میخوای استفاده کنی خیلی به نظر من کد نویسش بیشتر و سختره تا این اموزش...

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

فدات شم مهدی جون به نظر کامل و عالی میاد

الان سیستم روشن نیست روشن کردم حتما تست میکنم
قربونت برم

Sent from my HUAWEI P6-U06 using Tapatalk

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

مهدی جان فقط یه سؤالی که الآن دارم اینه که اون خط که نوشتی:

code.savedata("setting.txt","FontColor",Color.RGB)

اول اینکه code قرمزه و برای پروژه ناشناختست
دوم اینکه فایل setting.txt چیه ؟؟ باید ایجادش کنم ؟؟ چیزی باید بنویسم توش ؟؟

Sent from my HUAWEI P6-U06 using Tapatalk

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

ابتدا در صفحه لایوت پنج تا Label و دو تا Button و یک Spinner و یک SeekBar رو انتخاب کنید و نام های آنها رو به ترتیب مانند زیر قرار دهید تا در کدنویسی مشکلی پیش نیاد:

- در این قسمت Label ها را با نام پیش فرض قرار دهید و نامی برای آنها انتخاب نکنید

- و نام Spinner را FontType برای نمایش فونت ها قرار می دهیم

- و نام SeekBar را FontSize برای تغییر اندازه فونت ها قرار می دهیم

- و نام یکی از Button ها رو را btncolor برای انتخاب رنگ قرار می دهیم

- و نام یکی از Button ها رو را BtnSave برای ذخیره تغییرات قرار می دهیم

متن باتن اول رو انتخاب رنگ و متن باتن دوم رو ذخیره تغییرات قرار بده

 max value رو 32 و value رو 14 قرار بده در قسمت تنظیمات مربوط به SeekBar در صفحه دیزاینر

تنظیمات مکانی اون ها رو هم انجام بده :

Label1.Right=98%x
Label1.VerticalCenter=12%y
FontType.Right=60%x
FontType.VerticalCenter=12%y
Label2.Right=98%x
Label2.VerticalCenter=20%y
Label3.Right=98%x
Label3.VerticalCenter=40%y
Label5.Right=72%x
Label5.VerticalCenter=20%y
Label4.VerticalCenter=65%y
Label4.HorizontalCenter=50%x
FontSize.Right=60%x
FontSize.VerticalCenter=20%y
BtnSave.VerticalCenter=90%y
BtnSave.HorizontalCenter=50%x
btncolor.VerticalCenter=40%y
btncolor.HorizontalCenter=50%x

حالا یک اکتویتی جدید بساز و از کد زیر در اون استفاده کن فقط حواست باشه که نام لایوت رو نام لایوت خودت بزاری و به جای 000.png یه عکس خودت انتخاب کنی و بزاری بهتره یه عکس کوچیک باشه چون که وقتی کاربر روی دکمه انتخاب رنگ کلیک می کنه یک پیغام براش باز می شه ولیست رنگ ها رو بهش نمایش می ده و اون عکس ایکون اون پیغام هست و در آخر هم می تونی  فونت های خودت رو جایگزین فونت های داخل کد کنی نام اکتیویتی رو هم Setting قرار بده ...

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","BJADIDBD","BTITRBD","BZAR","BELHAM"))
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("BYEKAN.TTF")
Label5.Typeface=Typeface.LoadFromAssets("BYEKAN.TTF")
End Sub
Sub FontType_ItemClick (Position As Int, Value As Object)
If Position = 0 Then
Label4.Typeface=Typeface.LoadFromAssets("BYEKAN.TTF")
End If
If Position = 1 Then
Label4.Typeface=Typeface.LoadFromAssets("BJADIDBD.TTF")
End If
If Position = 2 Then
Label4.Typeface=Typeface.LoadFromAssets("BTITRBD.TTF")
End If
If Position = 3 Then
Label4.Typeface=Typeface.LoadFromAssets("BZAR.TTF")
End If
If Position = 4 Then
Label4.Typeface=Typeface.LoadFromAssets("BELHAM.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("BYEKAN.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

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

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")

حالا یک 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

راستی کتابخونه ی dialogs رو هم فعال کن

این شد یه آموزش کامل برای ساخت تنظیمات و اعمال اون در مطالب امیدوارم بتونی ازش استفاده کنی :ok:

مهدی جان دوتا سؤال بالایی حل شد عزیز فقط یه سؤال دیگه دارم

دیدی تو تنظیمات یه چیزی هست به عنوان متن نمونه ؟؟؟؟ که وقتی فونت و سایز و رنگ رو عوض میکنی روش اعمال میشه همونجا ؟؟؟؟

توی این آموزشت فکر کنم همون label4 بود ئولی این label4 اصلا هیچ متنی رو نشون نمیده چه برسه به اینکه بخواد رنگ و فونت و اندازه روش اعمال بشه

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

احتیاج  یه این همه راه رفتن نیست اون هم استفاده از فایل ها که کلی مشکل دارند از کتابخونه preference activity استفاده کنید هر کاری که با فایل ها می کنید این کتابخونه به راحتی براتون انجام میده و یه بخش جدا داره برای تنظیمات . این روش استانداری هست که در جاوا هم ازش استفاده می شه.

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

http://answercenter.ir/topic/5728-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C/

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

شما باید در قسمت تنظیمات لیبل 4 متن اون رو "متن نمونه" قرار بدید و رنگ اون رو سفید انتخاب کنید از الان به بعد متن نمونه به خوبی کار می کنه راستی چرا پست آموزش رو نقل و قول می کنید :S

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

باسلام

ممنون از زحمات شما

ولی مهندس جان این سورس فقط یک بار تنظیم را اعمال  میکند 

یعنی هربار بخواهی رنگ یا فونت را تغییر دهی باید  از برنامه خارج بشی بعد دوبار تغییر بدی

فقط بار اول اعمال میکنه

به هر حال ممنون

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

شما ماژول ذخیره رنگ رو با نام code از نوع code module ساختی؟ نباید مشکلی باشه اما اگر رفع نشد سورس رو برام بفرست تا بررسی کنم

مهدی جان سلام دوباره

امروز متوجه شدم که سایز روی متن های اکتیویتی هام اعمال نمیشه

نوع فونت و رنگ اعمال میشه ولی سایز نه !!!

مشکلش چیه عزیز ؟؟؟؟

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

روی حالت (debug (legacy کامپلایل کن تا بفهمی مشکل از کدوم خط هست اون خط رو زرد می کنه بعد یه اسکرین شات بگیر و بزار

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

روی حالت (debug (legacy کامپلایل کن تا بفهمی مشکل از کدوم خط هست اون خط رو زرد می کنه بعد یه اسکرین شات بگیر و بزار

 

دیشب اینجوری نبود !!!!!!!!

post-2580-0-12713100-1438867410_thumb.jpg

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

شما ماژول ذخیره رنگ رو با نام code از نوع code module ساختی؟ نباید مشکلی باشه اما اگر رفع نشد سورس رو برام بفرست تا بررسی کنم

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

بایگانی شده

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

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

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