У меня есть ListView
, в котором каждый элемент представляет собой XML-макет с (TextView
и Button
).
Я не использовал пользовательский Адаптер . Так как мне установить OnClickListener
для кнопки в определенной строке?
Моя цель состоит в том, чтобы получить полный текст String из этой конкретной строки, если для этой строки щелкнуть Button
.
ListView listView;
ArrayList<String> list;
ArrayAdapter<String> adapter;
Deal deal;
Примечание: я не использовал пользовательский адаптер. Я не знаю, как это использовать. Я новичок в этом.
deal = new Deal();
listView = (ListView)findViewById(R.id.listview);
firebaseDatabase = FirebaseDatabase.getInstance();
databaseReference = firebaseDatabase.getReference();
list = new ArrayList<>();
adapter = new ArrayAdapter<String>(this, R.layout.deal_info, R.id.dealinfo, list);
/*
What if i have two TextViews in my deal_info.xml...
what to do in that case?*/
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot snapshot_of_deals: dataSnapshot.child("Deals").getChildren()){
deal = snapshot_of_deals.getValue(Deal.class);
list.add("NAME : " + deal.getName() +"\n"+
"CONTACT : " + deal.getContact() +"\n"+
"ADDRESS : " + deal.getAddress() +"\n"+
"SOW[Date] : " + deal.getReap() +"\n"+
"REAP[Date]: " + deal.getSow() +"\n"+
"ID of deal: " + deal.getDateid());
}
listView.setAdapter(adapter);
}
мой макет строки ( deal_info.xml ):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
...
..>
<TextView
android:id="@+id/dealinfo"
android:layout_width="282dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/dealinfo"
android:text="Accept" />
</RelativeLayout>