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

استفاده از xml


batman123

سوال

سلام.

ببینید این فایل xml من هست:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/select1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:clickable="true"
android:background="@drawable/shap2"
    >

   <ImageView
       android:layout_width="35dp"
       android:layout_height="35dp"
       android:id="@+id/select_image"
       android:layout_marginTop="10dp"
       android:layout_marginLeft="10dp"
       android:layout_alignParentTop="true"
       android:layout_alignParentLeft="true"
       android:layout_alignParentStart="true" />

   <ImageView
       android:layout_width="35dp"
       android:layout_height="35dp"
       android:id="@+id/select_video"
       android:layout_marginTop="10dp"
       android:layout_alignParentTop="true"
       android:layout_toRightOf="@+id/select_image"
       android:layout_toEndOf="@+id/select_image" />

   <EditText
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:id="@+id/matn"
       android:layout_marginTop="10dp"
       android:layout_marginRight="10dp"
       android:layout_marginLeft="10dp"
       android:layout_below="@+id/select_image"
       android:layout_alignParentLeft="true"
       android:layout_alignParentStart="true"
       android:layout_alignParentRight="true"
       android:layout_alignParentEnd="true" />

   <ImageView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/image"
       android:layout_marginTop="10dp"
       android:layout_marginRight="10dp"
       android:layout_marginLeft="10dp"
       android:layout_below="@+id/matn"
       android:layout_alignParentLeft="true"
       android:layout_alignParentStart="true"
       android:layout_alignParentRight="true"
       android:layout_alignParentEnd="true" />


   <Button
       android:layout_width="wrap_content"
       android:layout_height="40dp"
       android:text="New Button"
       android:id="@+id/send"
       android:layout_marginLeft="80dp"
       android:layout_marginRight="80dp"
       android:layout_marginBottom="15dp"
       android:layout_below="@+id/button1"
       android:layout_marginTop="18dp"
       android:layout_alignParentRight="true"
       android:layout_alignParentEnd="true"
       android:layout_alignParentLeft="true"
       android:layout_alignParentStart="true" />

   <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="New Text"
       android:id="@+id/name"
       android:layout_marginBottom="5dp"
       android:layout_marginRight="15dp"
       android:paddingRight="2dp"
       android:paddingLeft="2dp"
       android:layout_alignBottom="@+id/select_video"
       android:layout_alignRight="@+id/matn"
       android:layout_alignEnd="@+id/matn"
       android:singleLine="true" />


   <CheckBox
       android:layout_width="150dp"
       android:layout_height="35dp"
       android:id="@+id/checkbox1"
       android:text="پست خصوصی"
       android:gravity="center"
       android:tag="Private_post"
       android:layout_below="@+id/image"
       android:layout_marginTop="10dp"
       android:layout_marginLeft="17dp"
       android:layout_marginStart="17dp" />

   <ImageView
       android:layout_width="35dp"
       android:layout_height="35dp"
       android:id="@+id/delete_aks"
       android:layout_marginTop="11dp"
       android:layout_below="@+id/image"
       android:layout_alignRight="@+id/name"
       android:layout_alignEnd="@+id/name" />


</RelativeLayout>

و اینطوری توی بیسیک بارگذاری شده:

Dim newx As XmlLayoutBuilder
	newx.LoadXmlLayout(Activity,"file name")

حالا من چه طوری میتونم به هرکدوم از این ویوهایی که داخل فایل xml من هستن، دسترسی پیدا کنم؟

جایی از سایت خوندم که با متد GetView و معرفی android:id میشه این کارو کرد، اما من تست کردم و نشد.

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

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

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

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

4 ساعت قبل، batman123 گفته است:

 

سلام و درود به شکل زیر

Dim image As ImageView=newx.GetView("select_image")
image.Color=Colors.Red

 

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

21 دقیقه قبل، محمدرضا شاهپیری گفته است:

سلام و درود به شکل زیر

Dim image As ImageView=newx.GetView("select_image")
image.Color=Colors.Red

 

سلام استاد

خیلی ممنون که لطف کردید و جواب دادید.

یه سوال

این 

select_image

تحت چه عنوانی توی فایل xmi هست؟!

یعنی مثلا id هست یا tag هست؟ یا...؟

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

6 ساعت قبل، محمدرضا شاهپیری گفته است:

سلام و درود به شکل زیر

Dim image As ImageView=newx.GetView("select_image")
image.Color=Colors.Red

 

استاد این اوکی شد

حالا چه طوری براش رویداد کلیک بنویسم؟!

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

9 ساعت قبل، batman123 گفته است:

استاد این اوکی شد

حالا چه طوری براش رویداد کلیک بنویسم؟!

اول کد جاوای زیر رو به اکتیویتی اضافه کنید

#If java
 
 import android.view.View;
public void setOnClick(View view,String event){
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try{
                    anywheresoftware.b4a.keywords.Common.CallSubNew(mostCurrent.activityBA,getObject(),event.toLowerCase());
                }catch(Exception e){
                    BA.Log(e.getMessage());
                }
            }
        });
    }
	
#End If

به شکل زیر هم کلیک تعریف کنید

اول کد زیر

Dim image As Button=newx.GetView("select_image")
Dim jo As JavaObject
jo.InitializeContext.RunMethod("setOnClick",Array(image,"image_click"))

و بعد باید ایونتی که توی ورودی دادین توی اکتیویتی اضافه کنید. مثلا اینجا ما image_click رو پاس دادیم

 

Sub image_click
	Log("clicked")
End Sub

 

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

6 دقیقه قبل، محمدرضا شاهپیری گفته است:

اول کد جاوای زیر رو به اکتیویتی اضافه کنید

#If java
 
 import android.view.View;
public void setOnClick(View view,String event){
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try{
                    anywheresoftware.b4a.keywords.Common.CallSubNew(mostCurrent.activityBA,getObject(),event.toLowerCase());
                }catch(Exception e){
                    BA.Log(e.getMessage());
                }
            }
        });
    }
	
#End If

به شکل زیر هم کلیک تعریف کنید

اول کد زیر

Dim image As Button=newx.GetView("select_image")
Dim jo As JavaObject
jo.InitializeContext.RunMethod("setOnClick",Array(image,"image_click"))

و بعد باید ایونتی که توی ورودی دادین توی اکتیویتی اضافه کنید. مثلا اینجا ما image_click رو پاس دادیم

 

Sub image_click
	Log("clicked")
End Sub

 

این برای همه رویدادها قطعا ثابت نیست.

مثلا اگه بخوایم لانگ کلیک کنیم یا توی رویداد textchange یک جعبه متن چیزی بنویسیم، چیارو باید تغییر بدیم؟

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

و این که اصلا صلاح هست که دیزاین برنامه رو فقط با مثلا اندروید استدیو طراحی کنیم و از فایل های xml در طراحی استفاده کنیم؟

اینا همش به خاطر اینه که ویوهامون توی رزولوشن های مختلف بهم نریزه

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

بایگانی شده

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

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

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