Android 以编程方式更改自定义ListView项
我有一个带有三个项目的自定义列表视图。其中一个类似于“将此添加到数据库”,当我单击它时,它会向数据库插入一些内容 我想让它做的是在插入之后,将文本更改为“从数据库中删除此记录”,并使用Android 以编程方式更改自定义ListView项,android,listview,Android,Listview,我有一个带有三个项目的自定义列表视图。其中一个类似于“将此添加到数据库”,当我单击它时,它会向数据库插入一些内容 我想让它做的是在插入之后,将文本更改为“从数据库中删除此记录”,并使用onClick方法调用一个方法来删除该记录,而不是一个要插入的方法。 这可能吗 这是我的密码: final String[] opcs = new String[]{"Resultados", "Clasificación", text_fav}; ArrayAdapter<String>
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;
}
}
});
final String[]opcs=新字符串[]{“Resultados”,“Clasificación”,text_fav};
ArrayAdapter aa=新的ArrayAdapter(此,R.layout.list\u菜单项,opcs);
m_列表。设置适配器(aa);
m_list.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
意图newActivity=null;
开关(位置)
{
案例0:。。。
案例2:if(断开连接(m_上下文))
{
añadirFavorito();
}
打破
}
}
});
这绝对是可能的。onItemClick
回调的view参数是您单击的视图,您只需更改该视图的内容即可。i、 e.view.setText(“从数据库中删除它”)
此外,您还需要区分下一次单击是“将此添加到DB”还是“从DB中删除此”,在此处执行类似于的字符串比较,如果(“从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);