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

مشکل در تنظیم فونت از string


pourya-man

سوال

سلام

من نوع فونت رو تو یه فایل ذخیره کردم تو برنامه و هنگام فراخوانی ارور میده

کد به این شکل هست

If File.Exists(File.DirInternalCache,"fafont.fo") =True Then
	fafont = File.ReadString(File.DirInternalCache,"fafont.fo")
	txtf.Typeface = Typeface.LoadFromAssets(fafont&".ttf")
End If

ارور هنگام کامپایل به این شکل هست

B4A version: 5.80
Parsing code.    (0.01s)
Compiling code.    (0.12s)
Compiling layouts code.    (0.02s)
Generating R file.    (0.45s)
Compiling generated Java code.    Error
B4A line: 210
txt.Typeface = arfont
javac 1.8.0_25
src\com\phoneplus\joshankabir\doa.java:558: error: incompatible types: String cannot be converted to Typeface
mostCurrent._txt.setTypeface((android.graphics.Typeface)(mostCurrent._arfont));
                                                        ^
1 error

البته ما مپ هم میشه ولی نمیخوام با مپ باشه با همین فایل میخوام باشه

حالا اگه روش دیگه ای به جز مپ هست بهم بگید

نوع فونت تو یه اکتیویتی دیگه با Spinner تعیین میشه و اسم فونت تو فایل ذخیره میشه 

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

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

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

عزیزمن  شما اصلا به اسپینر آیتم دادین؟؟؟ تو ارور که مشخصه سایز اسپینر درواقع همون آیتمهاش صفره بعد شما اومدین بهش مقدار دیفالت دادین

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

Spiner2.add("one")
Spiner2.add("two")
Spiner2.add("three")
Spiner2.add("four")

اینیشیالایز رو هم به این صورت بنویسید

Spinner2.Initialize("Spinner2")
لینک ارسال
به اشتراک گذاری در سایت های دیگر

یک سوال دیگه بپرسم جاش

چجوری تو اسپینر یک ایتم رو بعنوان آیتم نمایشی قرار بدیم

مثلا ما 4 تا گزینه داریم

گزینه 3 رو در حالت پیشفرض اسپینر نشون بده

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

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

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

#If java
import android.widget.Spinner;
public  void setdefoultvalu(Spinner spinner,int value){
        spinner.setSelection(value);
    }
#end if

بعد با استفاده از کتابخونه javaobject این رو بنویسید

Dim java As JavaObject
java.InitializeContext
java.RunMethod("setdefoultvalu",Array As Object(yourspiner,2))

اینجوری آیتم سومی به عنوان آیتم دیفالت نشون داده میشه البته قبلش باس اسپینر ادد و مقادیرش داده شده باشه

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

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

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

#If java
import android.widget.Spinner;
public  void setdefoultvalu(Spinner spinner,int value){
        spinner.setSelection(value);
    }
#end if

بعد با استفاده از کتابخونه javaobject این رو بنویسید

Dim java As JavaObject
java.InitializeContext
java.RunMethod("setdefoultvalu",Array As Object(yourspiner,2))

اینجوری آیتم سومی به عنوان آیتم دیفالت نشون داده میشه البته قبلش باس اسپینر ادد و مقادیرش داده شده باشه

من اینو انجام دادم ارور میداد

کدها درستن؟

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

من اینو انجام دادم ارور میداد

کدها درستن؟

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

چه اروری میده مگه؟

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

سلام

ممنون از دوستمون بابت کدشون

ولی برای اینکه یک مقدار رو به صورت پیشفرض قرار بدیم خود Spinner  تابع SelectedIndex

Spinner.SelectedIndex = 2

شماره ایتم ها از 0 شروع میشه.

اگه منظورتون همچین چیزی هستش که به این شکل میشه.

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

ارور به این شکل هست

** Activity (settings) Resume **
No wakelock.
** Activity (main) Create, isFirst = true **
** Activity (main) Resume **
** Activity (main) Pause, UserClosed = false **
** Activity (settings) Create, isFirst = true **
settings_activity_create (java line: 449)
java.lang.reflect.InvocationTargetException
	at java.lang.reflect.Method.invoke(Native Method)
	at anywheresoftware.b4j.object.JavaObject.RunMethod(JavaObject.java:131)
	at com.phoneplus.joshankabir.settings._activity_create(settings.java:449)
	at java.lang.reflect.Method.invoke(Native Method)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:169)
	at com.phoneplus.joshankabir.settings.afterFirstLayout(settings.java:103)
	at com.phoneplus.joshankabir.settings.access$000(settings.java:18)
	at com.phoneplus.joshankabir.settings$WaitForLayout.run(settings.java:81)
	at android.os.Handler.handleCallback(Handler.java:739)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:148)
	at android.app.ActivityThread.main(ActivityThread.java:5422)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.IndexOutOfBoundsException: Invalid index 2, size is 0
	at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
	at java.util.ArrayList.get(ArrayList.java:308)
	at anywheresoftware.b4a.objects.SpinnerWrapper$B4ASpinnerAdapter.getItem(SpinnerWrapper.java:269)
	at anywheresoftware.b4a.objects.SpinnerWrapper$B4ASpinner.setSelection(SpinnerWrapper.java:223)
	at com.phoneplus.joshankabir.settings.setdefoultvalu(settings.java:706)
	... 15 more
java.lang.reflect.InvocationTargetException
** Activity (settings) Resume **
No wakelock.
Ignoring event: bt2_up

Dim java As JavaObject
Spinner2.Initialize(Spinner2)
java.InitializeContext
java.RunMethod("setdefoultvalu",Array As Object(Spinner2,1))

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

بایگانی شده

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

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

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