[英]Change Custom ListView Item programmatically
我有一個包含三個項目的自定義列表視圖。 其中之一就像“將其添加到數據庫”,當我單擊它時,它將在數據庫中插入一些內容。
我要它執行的操作是在插入后,將文本更改為“從數據庫中刪除此文本”,然后將onClick
方法更改為調用方法以刪除該記錄,而不是插入方法。 這可能嗎?
這是我的代碼:
final String[] opcs = new String[]{"Resultados", "Clasificación", text_fav};
ArrayAdapter<String> aa = new ArrayAdapter<String>(this, R.layout.list_menutipo_item, opcs);
m_list.setAdapter(aa);
m_list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent newActivity = null;
switch( position )
{
case 0: ...
case 2: if (isConnected(m_context))
{
añadirFavorito();
}
break;
}
}
});
絕對有可能。 onItemClick
回調的view參數是您單擊的視圖,您只需更改該視圖的內容即可。 即view.setText("Delete this from the DB")
。
另外,您還將想區分下一次單擊是“將其添加到數據庫”還是“從數據庫中刪除”,在這里進行字符串比較,如if("Delete this from the DB".equals(view.getText()))
可能不是一個好習慣,您可以在view.setTag(true)
類的視圖中設置一個標志,以指示當前視圖的內容是“從數據庫中刪除此視圖”。 然后,您可以使用view.getTag()
返回該標志以進行比較。
Boolean flag = (Boolean)view.getTag();
if(flag == null || !flag) {
view.setText("Delete this from the DB");
flag = true;
//... code to insert a record to DB
} else {
view.setText("Insert this to the DB");
flag = false;
//... code to delete a record from DB
}
view.setTag(flag);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.