0
我正在用一個查詢數據庫的SimpleCursorTreeAdapter編寫ExpandableListActivity。我在非常小孩的內部添加了一個按鈕,現在我不能從列表中單擊按鈕的項目獲取信息。我認爲我的問題是我不太瞭解如何處理適配器內的數據。大多數例子都是關於listadapter的,比如this one。 我的適配器得到了getChildView實現,我無法實現的是從原始光標中檢索被點擊組的_id。因爲我不知道怎麼做,所以我試着在下面的代碼中獲取組名textview的名字,但是在我點擊的每個孩子中,我都會得到列表中第一個項目的名稱。ExpandableListView帶子按鈕裏面的
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
View v = super.getChildView(groupPosition, childPosition, isLastChild, convertView, parent);
v.inflate(getApplicationContext(),R.layout.productsexpchilditem, null);
Button button = (Button)v.findViewById(R.id.button1);
String name=((TextView)parent.findViewById(R.id.txt_exp_products_name_item)).getText().toString();
button.setTag(name);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(ProductsActivityExp.this, "TOAST "+v.getTag(), Toast.LENGTH_SHORT).show();
}
});
return v;
}
BTY我沒有實現的getGroupView方法,因爲當我做到了我失去了在組中的所有顯示的文本(而不是在孩子)。我真的認爲使用cursorTreeAdapter的工作得到了不同於listadapter的特定實現。
對不起,如果它不是更清晰:我從數據庫表中取出項目 - 列表中的每一行是項目的名稱,當您通過單擊具有名稱的行展開時,可以看到更多關於該項目。除了細節之外,還有一個按鈕,我希望點擊它可以對特定項目進行操作。問題在於按鈕位於「子」內部,從那裏我無法獲取項目屬性以傳遞它們(具體來說:使用按鈕發送,單擊不在子項中的項目的名稱,但在組中擴展)。希望更清楚。 – panda12
瞭解。通過getGroup(groupPosition).get ...嘗試將set button標籤設置爲getGroupId(groupPosition)或其他列的值。 – HighFlyer
問題是我沒有根據需要實現CursorTreeAdapter接口。我從SimpleCursorTreeAdapter更改爲常規CursorTreeAdapter,並在重寫子組和組的「綁定」方法後,所有工作都應如此。 – panda12