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);