رفتن به مطلب

کتابخانه XmlLayoutBorder جهت ساخت و بارگذاری چیدمان از طریق فایل xml


مهران محمودی

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

با سلام خدمت تمامی کاربران گرامی انجمن،

در ایــــــــن تاپیک یه دوست عزیز میخواست که با استفاده از xml چیدمان (Layout) خودش رو بارگذاری کنه ! بعد از کلی جستجو تونستم این کتابخانه رو پیدا کنم. در سایت basic4ppc که برای کمپانی anywhere software یعنی سازنده بیسیک 4 اندروید هستش، این کتابخانه رو با توضیحات کامل ولی متاسفانه به زبان انگلیسی قرار داده بودن. دیشب با استفاده از دانسته های خودم و مترجم گوگل :دی اون مطلب رو ترجمه و تا جایی که میشد به زبان فارسی ساده نوشتم.

امیدوارم مفید واقع بشه:

روش استاندارد برای ساخت رابط کاربری در Basic4android طراحی دیدنی توسط دیزاینر(بصری) و یا طراحی از طریق کد نویسی است.

این کتابخانه راه سوم را اضافه می کند !! و استفاده از فایل های xml جهت بارگذاری طرح بندی و چیدمان (Layout) میباشد ! این روش استاندارد و پیشنهادی گوگل است.

این گزینه بخصوص هنگامی بسیار کاربردی است که شما میخواهید منابع (Resources) ساخته شده در یک پروژه آندروید را مجددا در پروژه ی دیگر و یا همان پروژه استفاده کنید.

البته راه هایی نیز وجود دارد که هر سه گزینه را با یکدیگر ترکیب کرد !

این کتابخانه چند منبع مرتبط با این روش را به شما ارائه میدهد.

شما میتوانید اطلاعات بیشتری در رابطه با منابع آندروید را در اینجا کسب کنید:

قبل از شروع شما حتما باید به خاطر داشته باشید که در حین انجام عملیات کامپایل، کامپایلر اشیاء داخل پوشه objects را پاک میکند !

کامپایلر منابع اضافی را در صورتی که آنها فقط خواندنی (Read-Only) نباشند، حدف میکند.

ساده ترین راه حل برای اینکار فقط خواندنی (Read-Only) کردن فایلهای منابع با اضافه کردن ویژگی زیر به آنها میباشد:


#CustomBuildAction: 1, c:\windows\system32\attrib.exe, +r res\*.* /s

نکته: ممکن است شما به اصلاح مسیر نیاز داشته باشید.

نمونه کد:



Sub Activity_Create(FirstTime As Boolean)
Dim x As XmlLayoutBuilder
'load the layout
x.LoadXmlLayout(Activity, "layout1")
'load the Animation
anim = x.LoadAnimation("wave_scale", "anim")
'get a view based on the id
button1 = x.GetView("fade_animation")
'get a drawable object
Activity.Background = x.GetDrawable("smlnpatch160dpi")

Panel1 = x.GetView("panel1")
Panel1.Color = Colors.White
Dim spinner1 As Spinner
spinner1.Initialize("")
spinner1.AddAll(Array As String("1", "2", "3"))
Panel1.AddView(spinner1, 0, 0, Panel1.Width, Panel1.Height)
End Sub


ساختار پوشه:

attachment.php?attachmentid=165&stc=1

فایل xml که برای بارگذاری استفاده شد:



<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:orientation="vertical" >


<TextView
android:layout_width="match_parent" android:layout_height="wrap_content"
android:layout_weight="0" android:paddingBottom="4dip"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/activity_animation_msg"/>

<Button android:id="@+id/fade_animation"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="@string/activity_animation_fade"
android:tag="Button1"
>
<requestFocus />
</Button>
<Panel
android:id="@+id/panel1"
android:layout_width="200dp" android:layout_height="80dp">
</Panel>

<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:tag="chk1" />
</LinearLayout>

متد LoadXmlLayout فایل چیدمان (Layout) را بارگذاری میکند و اشیای مورد نظر را به فعالیت (Activity) و یا پنل اضافه میکند.

هنگامی که چیدمان بارگذاری میشود شما میتوانید از متد GetView برای فراخوانی یک کنترل بر اساس ویژگی id استفاده کنید.

اگر شما میخواهید که از رویداد کنترلها استفاده کنید باید "نام رویداد" را در ویژگی android:tag تنظیم کنید.

شما تنها میتوانید از رویدادهای کنترلهای زیر استفاده کنید:


EditText
Button
CheckBox
RadioButton
Label
AutoCompleteEditText
ToggleButton
ImageView
SeekBar
Panel

پنل به طور متفاوتی کنترلهای دیگر (Viewهای دیگر) را مهمان میکند و یک کنترل بومی نیست ! پنل به شما اجازه میدهد کنترل های دیگر را به آن (با برنامه نویسی دستی کنترل ها و یا Panel.LoadLayout) اضافه کنید.

LoadAnimation یک شیء انیمیشن تعریف شده در فایل xml را بارگذاری میکند. این به شما اجازه میدهد انواع مختلف انیمیشن را که هرکدام شامل مجموعه از انیمیشن ها هستند، بسازید. (با کتابخانه استاندارد Animations ممکن نیست)

متدهای دیگر به شما اجازه میدهند تا عکس ها و رشته ها را از فایل های منبع (Resources) بارگذاری کنید.

منبع: basic4ppc.com

ترجمه توسط انجمن برنامه نویسان Basic4Android

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

رمز عبور: basic4android.org

XmlLayoutBorder-basic4android.org.rar

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

داداش مهران

من اصلا چیزی نفهمیدم الان چطور میشه از xml که توی این تایپک گذاشتم استفاده کرد؟

اگه این xml به عنوان مثال بتونی اموزش بدی بهتر میفهمم مطمنن دوستان هم گیج شدن , سخته.

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

سلامی دیگر خدمت کاربران محترم،

والا من مهرانم چرا همه بهم میگن مهدی :دی

یه سری توضیحات اضافی در این مورد بدم شاید بعضی دوستان به اشتباه بیفتن:


anim = x.LoadAnimation("wave_scale", "anim")

این رو فقط در صورتی که انیمیشن در فایل xml تون انیمیشن دارید استفاده کنید در غیر اینصورت بهش نیازی نیست، پاکش کنید.

___

اگه دقت کنید در فایل xml هر کنترل ID مخصوص به خودش رو داره که در جاوا با استفاده از اون آیدی باید اون کنترل رو در کد نویسی معرفی کنی (findViewById)

از متد GetView که در کتابخانه XmlLayoutBorder وجود داره هم به اینصورت باید استفاده کنید، یعنی بین دو پرانتز برای GetView باید آیدی کنترل رو وارد کنید !! مثال میزنم برای گرفتن دکمه:

این خط رو در فایل xml دقت کنید:


<Button android:id="@+id/fade_animation"

ID برای Button رو دیدید ؟ در کد نویسی بیسیک با استفاده از این کد میتونیم Button رو معرفی و ازش استفاده کنیم:


Dim button1 as Button
button1 = x.GetView("fade_animation")

حالا تمامی خاصیت های موجود در فایل xml که برای دکمه در نظر گرفته شده، به متغیر button1 ما که از نوع button هسش نسبت داده میشه.

کلمه fade_animation که به متد GetView داده شده، در واقع ID تعیین شده برای Button ماست.

امیدوارم توضیحاتم مفید واقع باشه. اگه باز نکته ای به ذهنم اومد توضیح میدم براتون.

موفق باشید.

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

:دی

الان فهمش راحت تر شد

مهران جان اگه تونستی مثال اون xml بزن اگرم نشد اشکال نداره بازم دستت درد نکنه که اینقدر با معرفت با مرامی

مهران جان یه سوال اگه توی xml تصویر تعریف شده باشه چطور باید ازش استفاده کرد؟همونطور که میدونی تصاویربرنامه نویسی توی اکلپس توی drawable ذخیره میشه اینو باید چیکارش کرد؟

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

شرمنده یکم دیر شد جوابم.

توضیح میدم برات:

اول به منوی tools برو و clean project رو بزن تا فایل های قبلی که استفاده کردی از بین برن.

در محل ذخیره پروژه ت به پوشه objects و سپس به res برو. اگه فولدری به اسم layout داشتی برو داخلش اگه نداشتی بسازش.

حالا فایل xml که میخوای بارگذاری کنی درون این پوشه بریز، کلیک راست کن رو فایل پایین نوشته که Read-Only ، این خاصیت رو تیک براش بذار و اوکی کن.

کار اصلی همین بود، میتونی توی کد نویسی به راحتی این فایل رو فراخوانی کنی ! کتابخانه xml layout builder رو به پروژه ت اضافه کن. نمونه کد (توی activity_create هرچی که هست پاک کن) :


Dim XmlLayoutBuilder1 As XmlLayoutBuilder
XmlLayoutBuilder1.LoadXmlLayout(Activity,"mymain_1")

این نکته رو به خاطر داشته باش که فایل xml رو بدون .xml باید وارد کنی ! یعنی اگه اسم فایل:


test.xml

هستش، تو توی کد نویسی باید بگی :


XmlLayoutBuilder1.LoadXmlLayout(Activity,"test")

برای گرفتن یه عکس از متد XmlLayoutBuilder.GetDrawable استفاده کن، ID مختص به عکس رو بده یه android.graphics.drawable.Drawable بهت برگشت میده. میتونی از bitmap استفاده کنی.

من تست نکردم ولی احتمال 99% باید عکس رو در این پوشه قرار بدی:


\Objects\res\drawable

شرمنده به زبان خیلی ساده و با نمونه کد توضیح نمیدم، سرم شلوغه. به امید خدا اگه هنوزم مشکلی داشتی شب که سرم خلوت شد توضیح میدم.

امیدوارم توضیحاتم تا به اینجا مفید واقع بشه.

موفق باشی.

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

خیلی عالی بود دستت درد نکنه

مهران جان نتونستم :(

شب اگه سرت خلوت شد یه توضیح مفصل و کامل بده ترجیحا همون xml که خودم تو اون تایپک قرار دادم

ممنون منتظر هستم

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

هر چقدر کدها دستکاری میکنم id ها هم فراخوانی کردم اما باز این ارور میده

Parsing code.                           0.00
Compiling code.                         0.04
Compiling layouts code.                 0.00
Generating R file.                      Error
res\layout\emad_sina.xml:4: error: Error: No resource found that matches the given name (at 'id' with value '@id/imageView6').
res\layout\emad_sina.xml:5: error: Error: No resource found that matches the given name (at 'id' with value '@id/imageView4').
res\layout\emad_sina.xml:6: error: Error: No resource found that matches the given name (at 'id' with value '@id/imageView1').
res\layout\emad_sina.xml:7: error: Error: No resource found that matches the given name (at 'id' with value '@id/imageViewc2').
res\layout\emad_sina.xml:8: error: Error: No resource found that matches the given name (at 'id' with value '@id/shamse').
res\layout\emad_sina.xml:9: error: Error: No resource found that matches the given name (at 'id' with value '@id/logo').

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

شما تمام فایل هایی که برای ساخت چیدمان یا layout مورد نیاز هستش رو در اختیار برنامه نذاشتی ! مثل عکس ها و ...

و اروری که تشکیل میشه بدلیل عدم وجود این فایل هاست، دونه دونه اسم فایل ها رو میگه که وجود ندارن !

تمامی فایل ها رو پیوست کن تا پیگیری کنم.


res\layout\splash.xml:2: error: Error: No resource found that matches the given name (at 'background' with value '@drawable/splash_bg').
res\layout\splash.xml:4: error: Error: No resource found that matches the given name (at 'id' with value '@id/imageView6').
res\layout\splash.xml:4: error: Error: No resource found that matches the given name (at 'background' with value '@drawable/corner_top_left').
res\layout\splash.xml:5: error: Error: No resource found that matches the given name (at 'id' with value '@id/imageView4').
res\layout\splash.xml:5: error: Error: No resource found that matches the given name (at 'background' with value '@drawable/corner_top_right').
res\layout\splash.xml:6: error: Error: No resource found that matches the given name (at 'id' with value '@id/imageView1').
res\layout\splash.xml:6: error: Error: No resource found that matches the given name (at 'background' with value '@drawable/corner_bottom_left').
res\layout\splash.xml:7: error: Error: No resource found that matches the given name (at 'id' with value '@id/imageViewc2').
res\layout\splash.xml:7: error: Error: No resource found that matches the given name (at 'background' with value '@drawable/corner_bottom_right').
res\layout\splash.xml:8: error: Error: No resource found that matches the given name (at 'id' with value '@id/shamse').
res\layout\splash.xml:8: error: Error: No resource found that matches the given name (at 'src' with value '@drawable/splash_shamse').
res\layout\splash.xml:9: error: Error: No resource found that matches the given name (at 'id' with value '@id/logo').
res\layout\splash.xml:9: error: Error: No resource found that matches the given name (at 'src' with value '@drawable/splash_logo').


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

بعد از اضافه کردن این فایل ها، هنوزم ارور هست:


res\layout\splash.xml:4: error: Error: No resource found that matches the given name (at 'id' with value '@id/imageView6').
res\layout\splash.xml:5: error: Error: No resource found that matches the given name (at 'id' with value '@id/imageView4').
res\layout\splash.xml:6: error: Error: No resource found that matches the given name (at 'id' with value '@id/imageView1').
res\layout\splash.xml:7: error: Error: No resource found that matches the given name (at 'id' with value '@id/imageViewc2').
res\layout\splash.xml:8: error: Error: No resource found that matches the given name (at 'id' with value '@id/shamse').
res\layout\splash.xml:9: error: Error: No resource found that matches the given name (at 'id' with value '@id/logo').


دو فایل به اسم shamse و logo رو پیدا نمیکنه. اون ها رو هم قرار بده لطفا.

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

سلام

داداش مهران همینا بود logo با shamse خودت که میدونی دارن تصاویر فراخوانی میکنن که تو فایل قرار دادم دیگه فایلی یا xml به اسم logo با shamse نیست داداش

مهران جان مشکل حل نشد؟

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

  • 1 سال بعد...

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

Dim button1 as Button
button1 = x.GetView("fade_animation")

 

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

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

درود،

 

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

Dim button1 as Button
button1 = x.GetView("fade_animation")

 

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

 

 

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

Dim button1 as Button
button1 = x.GetView("fade_animation")

Dim ref as Reflector
ref.Target = button1
ref.SetOnClickListener("button1_Click")

 

و رویداد کلیک روی دکمه رو به این صورت تعریف کنید:

Sub button1_Click(tag as object)

' ettefaghi ke mogheye click ro button biofte ro inja benevisid! '

End Sub

من B4A رو الان رو سیستمم ندارم که تست کنم، ولی فکر میکنم این کدها جواب بده!

 

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

 

موفق باشید.

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

  • 5 ماه بعد...

واسه من این خطا رو میده لطفاً راهنمایی بفرمایید

 

و اینکه مهم نیست نام فایل xml چی باشه ؟!!!

اگه یکی از دوستان سورس نمونه قزاز دهند عالی میشه ..

 

B4A version: 5.80
Parsing code.    (0.02s)
Compiling code.    (0.04s)
Compiling layouts code.    (0.01s)
Generating R file.    Error
res\layout\layout.xml:10: error: Error: No resource found that matches the given name (at 'text' with value '@string/activity_animation_msg').
res\layout\layout.xml:16: error: Error: No resource found that matches the given name (at 'text' with value '@string/activity_animation_fade').

 

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

دوستان خواهش می کنم اگر کسی این کار رو انجام داده و به نتیجه رسیده یه سورس کوچیک بزاره

 

با کدهای بالا هر کار میکنم خطا میده

 

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

  • 3 ماه بعد...
Sub av_getview (rowView As Panel,Position As Int)
	Cur.Position=Position
	IntValue=Cur.GetInt("Value")

	Cond=Cur.GetInt("Condition")
	Dim p As Panel
	p.Initialize("p")
	
	If Cond=1 Then
		p.Color=0xFFB0E0FC
	Else
		If (Position Mod 2)=1 Then
			p.Color=0xFFFCF2AA
		Else	
			p.Color=Colors.White
		End If
	End If
	
	XML.LoadXmlLayout(p,"hazineh2")
	'p.LoadLayout("hazineh")
	rowView.AddView(p,0,0,100%x,30%y)
	LblID.Text=Cur.GetString("Id")
	Dim jo As JavaObject = p
	
	LblRadif= jo.RunMethod("findViewById",Array(XML.GetResourceId("id","lblradif")))
	IntRadif=Position+1
	LblRadif.TextColor=Colors.Black
	LblRadif.Typeface=Typeface.LoadFromAssets("byekan.ttf")

	LblRadif.Text=IntRadif
	
	
	lblsubjectname=jo.RunMethod("findViewById",Array(XML.GetResourceId("id","lblsubjectname")))
	lblsubjectname.Text="نام کامل دسته بندی"'a.GetFullName(Cur.GetInt("SubjectID"))
	lblsubjectname.TextColor=Colors.Black
	
	LblDate=jo.RunMethod("findViewById",Array(XML.GetResourceId("id","lbldate")))
	LblDate.TextColor=Colors.Blue
	LblDate.Typeface=Typeface.LoadFromAssets("byekan.ttf")
	LblDate.Text=Cur.GetString("Date")
	
	LblDes=jo.RunMethod("findViewById",Array(XML.GetResourceId("id","lbldes")))
	LblDes.TextColor=0xFF077E01
	LblDes.Typeface=Typeface.LoadFromAssets("byekan.ttf")
	LblDes.Text=Cur.GetString("Des")
	
'	LblDayname.Text=GetDayName(LblDate.Text)

	LblValue=jo.RunMethod("findViewById",Array(XML.GetResourceId("id","lblvalue")))
	LblValue.TextColor=Colors.White
	LblValue.Color=Colors.Red
	LblValue.Typeface=Typeface.LoadFromAssets("byekan.ttf")
	If Main.Vahed=2 Then
		 LblValue.Text=a.ConvertRialtoToman(IntValue)&" تومان"
	Else
		If IntValue.Length>3 Then
			LblValue.Text=a.ConvertNumbertoMoney(IntValue)&" ریال"
		Else
			LblValue.Text=IntValue
		End If
	End If


	PnlHazineh.Tag=LblID.Text			
	
End Sub

من با استفاده از Xmllayoutbuilder و Arialistview یه لیست طراحی کردم ، حالا میخوام اندازه هر مورد از لیستم باتوجه به ویوهای داخلش تنظیم بشه ، لطفاً راهنمایی بفرمایید

مطابق کد زیر الان اندازه هر پنل ثابت هست ...

rowView.AddView(p,0,0,100%x,30%y)

 

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

  • 2 هفته بعد...

چطوری میتونم فونت رو از طریق xml و این کتابخونه اعمال کنم

من کدر زیر رو در فایل xml مربوط به لابوت قرار دادم وفونت مربوطه هم به برنامه اضافه کردم ولی فونت عوض نمیشه

خواهش میکنم راهنمایی کنید ...

  android:fontFamily="byekan"

 

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

  • 11 ماه بعد...

کسی میدونه این خطا چی میگه ؟

 

 

Logger connected to:  LGE LG-D802
--------- beginning of system
--------- beginning of main
ParseApplication.onCreate xml Id = 2131034112
data null
data1 MTYVUtmRlQSzkHnpIYBUkfeDYkIeGY2xoq4TDOHf
data2 6ToH14QeJDeAZjwbtSAWS7HthAgOf0UAZOOzU7s8
** Activity (main) Create, isFirst = true **
** Activity (main) Resume **
** Activity (main) Pause, UserClosed = false **
** Activity (main) Resume **
*** Service (setmainpic) Create ***
** Service (setmainpic) Start **
*** Service (mailservice) Create ***
** Service (mailservice) Start **
*** Service (notifyservice) Create ***
** Service (notifyservice) Start **
*** Service (httputils2service) Create ***
** Service (httputils2service) Start **
** Service (httputils2service) Start **
** Activity (main) Pause, UserClosed = false **
** Activity (newhazineh) Create, isFirst = true **
** Activity (newhazineh) Resume **
** Activity (newhazineh) Pause, UserClosed = false **
** Activity (subjects) Create, isFirst = true **
** Activity (subjects) Resume **
Error occurred on line: 195 (Subjects)
android.view.InflateException: Binary XML file line #10: Error inflating class button
	at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:757)
	at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
	at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
	at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
	at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
	at anywheresoftware.b4a.object.XmlLayoutBuilder.LoadXmlLayout(XmlLayoutBuilder.java:49)
	at java.lang.reflect.Method.invoke(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:372)
	at anywheresoftware.b4a.shell.Shell.runVoidMethod(Shell.java:755)
	at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:345)
	at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:249)
	at java.lang.reflect.Method.invoke(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:372)
	at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:139)
	at aria.gp.listview.array.adapter.CustomB4Alayout.getView(CustomB4Alayout.java:49)
	at android.widget.AbsListView.obtainView(AbsListView.java:2387)
	at android.widget.ListView.makeAndAddView(ListView.java:1864)
	at android.widget.ListView.fillDown(ListView.java:698)
	at android.widget.ListView.fillFromTop(ListView.java:759)
	at android.widget.ListView.layoutChildren(ListView.java:1659)
	at android.widget.AbsListView.onLayout(AbsListView.java:2191)
	at android.view.View.layout(View.java:15654)
	at android.view.ViewGroup.layout(ViewGroup.java:4969)
	at anywheresoftware.b4a.BALayout.onLayout(BALayout.java:43)
	at android.view.View.layout(View.java:15654)
	at android.view.ViewGroup.layout(ViewGroup.java:4969)
	at anywheresoftware.b4a.BALayout.onLayout(BALayout.java:43)
	at android.view.View.layout(View.java:15654)
	at android.view.ViewGroup.layout(ViewGroup.java:4969)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:508)
	at android.view.View.layout(View.java:15654)
	at android.view.ViewGroup.layout(ViewGroup.java:4969)
	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1705)
	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1559)
	at android.widget.LinearLayout.onLayout(LinearLayout.java:1468)
	at android.view.View.layout(View.java:15654)
	at android.view.ViewGroup.layout(ViewGroup.java:4969)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:508)
	at android.view.View.layout(View.java:15654)
	at android.view.ViewGroup.layout(ViewGroup.java:4969)
	at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2102)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1859)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1078)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5875)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
	at android.view.Choreographer.doCallbacks(Choreographer.java:580)
	at android.view.Choreographer.doFrame(Choreographer.java:550)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
	at android.os.Handler.handleCallback(Handler.java:739)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:135)
	at android.app.ActivityThread.main(ActivityThread.java:5349)
	at java.lang.reflect.Method.invoke(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:372)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.button" on path: DexPathList[[zip file "/data/app/ParhamApps.Acc-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
	
Message longer than Log limit (4000). Message was truncated.

 

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

  • 7 ماه بعد...
در در 1395/04/15, 16:15:56، مهران محمودی گفته است :

درود،

 

 

 

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


Dim button1 as Button
button1 = x.GetView("fade_animation")

Dim ref as Reflector
ref.Target = button1
ref.SetOnClickListener("button1_Click")

 

و رویداد کلیک روی دکمه رو به این صورت تعریف کنید:


Sub button1_Click(tag as object)

' ettefaghi ke mogheye click ro button biofte ro inja benevisid! '

End Sub

من B4A رو الان رو سیستمم ندارم که تست کنم، ولی فکر میکنم این کدها جواب بده!

 

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

 

موفق باشید.

چطور می تونم متد های زیر رو ازش بگیرم ؟؟؟

 

TextChanged (Old As String, New As String)

FocusChanged (HasFocus As Boolean)

 

کسی بلده راهنمایی کنه ؟؟؟

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

بایگانی شده

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

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

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