Android 如何以编程方式将自定义参数分配给我的膨胀视图?
Android how can I assign custom parameters programmatically to my inflated view?
我在文件 card_layout.xml 中为我的 android 应用程序创建了一个 material 样式卡,代码如下:
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>
`
我需要在 activity 中创建多张卡片,但它们在 "Titolo Card"、"Citta Card"、"Via Card" 上必须具有不同的 android:text 值, "Email card" 和 "Telefono Card" 以及 android:src="@drawable/salone"
图像视图中的不同图像
我需要的值是从数据库中获取的,所以我创建了一个用于添加卡片的方法:
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);
}
我在文件 card_layout.xml 中为我的 android 应用程序创建了一个 material 样式卡,代码如下:
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>
`
我需要在 activity 中创建多张卡片,但它们在 "Titolo Card"、"Citta Card"、"Via Card" 上必须具有不同的 android:text 值, "Email card" 和 "Telefono Card" 以及 android:src="@drawable/salone"
图像视图中的不同图像我需要的值是从数据库中获取的,所以我创建了一个用于添加卡片的方法:
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);
}