簡體   English   中英

Android如何才能以編程方式向自定義視圖分配自定義參數?

[英]Android how can I assign custom parameters programmatically to my inflated view?

我已經在文件card_layout.xml中為我的android應用程序創建了材質樣式卡,這是代碼:

card_layout.xml:

`<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
xmlns:android="http://schemas.android.com/apk/res/android">

<TextView
    android:id="@+id/scheda_card2"
    android:layout_width="match_parent"
    android:layout_height="220dp"
    android:layout_marginTop="1dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_below="@+id/immagine_card2"
    android:background="@drawable/cardrect"/>
<ImageView
    android:id="@+id/immagine_card2"
    android:layout_width="match_parent"
    android:layout_height="120dp"
    android:scaleType="fitXY"
    android:padding="2dp"
    android:src="@drawable/salone"/>
<TextView
    android:id="@+id/titolo_card2"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="80dp"
    android:textColor="@color/white"
    android:gravity="center_vertical"
    android:paddingLeft="15dp"
    android:text="Titolo Card"
    android:textSize="20sp"/>
<TextView
    android:id="@+id/citta_card2"
    android:layout_width="match_parent"
    android:layout_height="20dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="125dp"
    android:textColor="@color/darkgray"
    android:gravity="center_vertical"
    android:paddingLeft="15dp"
    android:text="Citta card"
    android:textSize="13sp"/>
<TextView
    android:id="@+id/via_card2"
    android:layout_width="match_parent"
    android:layout_height="20dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="145dp"
    android:textColor="@color/black2"
    android:gravity="center_vertical"
    android:paddingLeft="15dp"
    android:text="Via card"
    android:textSize="13sp"/>
<ImageView
    android:id="@+id/emailicon2"
    android:layout_width="10dp"
    android:layout_height="20dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="165dp"
    android:layout_marginLeft="15dp"
    android:src="@drawable/emailicon" />
<TextView
    android:id="@+id/email_card2"
    android:layout_width="match_parent"
    android:layout_height="20dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="165dp"
    android:layout_marginLeft="30dp"
    android:textColor="@color/black2"
    android:gravity="center_vertical"
    android:text="Email card"
    android:textSize="13sp"/>
<ImageView
    android:id="@+id/phoneicon2"
    android:layout_width="10dp"
    android:layout_height="20dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="185dp"
    android:layout_marginLeft="15dp"
    android:src="@drawable/phoneicon" />
<TextView
    android:id="@+id/phone_card2"
    android:layout_width="match_parent"
    android:layout_height="20dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="185dp"
    android:layout_marginLeft="30dp"
    android:textColor="@color/black2"
    android:gravity="center_vertical"
    android:text="Telefono Card"
    android:textSize="13sp"/>
<TextView
    android:id="@+id/scopri_card2"
    android:layout_width="wrap_content"
    android:layout_height="20dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_marginRight="20dp"
    android:layout_marginTop="185dp"
    android:textColor="@color/blue"
    android:gravity="center_vertical"
    android:text="SCOPRI"
    android:textStyle="bold"
    android:textSize="14sp"/>

    </RelativeLayout>
    `

我需要在活動中創建多個類似的卡,但是它們在“ Titolo卡”,“ Citta卡”,“ Via卡”,“電子郵件卡”和“ Telefono卡”上必須具有不同的android:text值,並且在android:src =“ @ drawable / salone”上的imageview

我需要的值是從數據庫中獲取的,因此我創建了一個稱為添加卡的方法:

 public void addCard(String titolo, String citta, String via, String email, String telefono, String immagine ){

    View view = getLayoutInflater().inflate(R.layout.card_layout,   cardContainer,false);

    cardContainer.addView(view);

}

如何在視圖中設置這些參數?

只需直接在視圖上訪問:

public void addCard(String titolo, String citta, String via, String email, String telefono, String immagine ){

    View view = getLayoutInflater().inflate(R.layout.card_layout,   cardContainer,false);
    TextView txt;
    txt = (TextView) view.findViewById(R.id._ID_OF_VIEW_);
    txt.setText(" text ");
    txt = (TextView) view.findViewById(R.id._ID_OF_OTHER_VIEW_);
    txt.setText(" text ");

    ImageView img;
    img = (ImageView) view.findViewById(R.id._ID_OF_IMAGE_);
    img.setImageResource(R.drawable._DRAWABLE_);

    cardContainer.addView(view);

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM