По сути, у меня есть список Textview для каждого заголовка в ExpandableListView.
Я хотел бы добавить идентификатор из базы данных в атрибут TextView для получения его позже.Я создал CustomView "ChampText" с идентификатором CustomAttribute, который является идентификатором.
public class ChampText extends android.support.v7.widget.AppCompatTextView{
public String idveh;
public ChampText(Context context){
super(context);
}
public ChampText(Context context, AttributeSet attribute) {
super(context, attribute);
TypedArray ta = context.obtainStyledAttributes(attribute, R.styleable.ChampText);
idveh = ta.getString(R.styleable.ChampText_idveh);
ta.recycle();
}
public String getIdveh() {
return idveh;
}
public void setIdveh(String idveh) {
this.idveh = idveh;
}
}
И attrs.xml:
<resources>
<declare-styleable name="ChampText">
<attr name="idveh" format="string"/>
</declare-styleable>
</resources>
Я создаю свой список "ChampText" вМетод getData ():
public HashMap<String, List<ChampText>> getData(List<VehiculeModel> list) {
List<String> expVehicule = new ArrayList<String>();
HashMap<String, List<ChampText>> expandableListDetail = new HashMap<String, List<ChampText>>();
for (VehiculeModel vehicule : list) {
List<ChampText> expTextViewVehicule = new ArrayList<ChampText>();
ChampText mesPleins = new ChampText(context);
ChampText supprimer = new ChampText(context);
String nomVehicule = "";
String vehid = String.valueOf(vehicule.getId());
nomVehicule = vehicule.getVehiculeNom() + "\n" + vehicule.getVehiculeType();
mesPleins.setText("Mes Pleins");
mesPleins.setId(vehicule.getId());
mesPleins.setIdveh(vehid);
expTextViewVehicule.add(mesPleins);
supprimer.setText("Supprimer");
supprimer.setId(vehicule.getId());
supprimer.setIdveh(vehid);
expTextViewVehicule.add(supprimer);
expandableListDetail.put(nomVehicule, expTextViewVehicule);
}
return expandableListDetail;
}
На данный момент мой идентификатор является хорошим идентификатором (1 для первой машины, 2 для второй и т. д.), и я пытаюсь присвоить его атрибуту idveh для каждого элемента Iсоздать для каждого транспортного средства.
На моей главной странице мои ChampText представления хорошо созданы, и я установил их так:
<com.bonobocorp.joker.litrocent.ChampText
android:id="@+id/expandedListItem"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="?android:attr/expandableListPreferredChildPaddingLeft"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:onClick="onClickTextView"
android:clickable="true"/>
Значение Text хорошо информировано, и я могу поставитьидентификатор в тексте, он работает хорошо, но если я добавлю идентификатор в свой атрибут idveh моего CustomView, когда я восстановлю свое представление на главной странице и попытаюсь напечатать значение моего идентификатора в моем методе «onClickTextView» следующим образом:
public void onClickTextView (View expandedListItem) {
ChampText listItem = (ChampText) expandedListItem;
String idveh = ((ChampText) expandedListItem).getIdveh();
System.out.println(idveh);
}
Значение idveh всегда равно "null".
Как я могу получить свой идентификатор для всех элементов моего списка ChampText (или TextView), чтобы вызвать действие на основе идентификатора