Java 从自定义ListViewAdapter向SharedReferences添加值
我试图从列表中为SharedReferences添加值,其想法是当用户单击按钮时,列表项将添加到收藏夹页面,但我无法这样做,我认为问题在于我使用的是自定义ListViewAdapter,此listview允许我向左滑动列表项,以便显示按钮。 我不能将SharedReferences放在这门课上,这就是我所拥有的:Java 从自定义ListViewAdapter向SharedReferences添加值,java,android,sharedpreferences,Java,Android,Sharedpreferences,我试图从列表中为SharedReferences添加值,其想法是当用户单击按钮时,列表项将添加到收藏夹页面,但我无法这样做,我认为问题在于我使用的是自定义ListViewAdapter,此listview允许我向左滑动列表项,以便显示按钮。 我不能将SharedReferences放在这门课上,这就是我所拥有的: public class ListViewAdapter extends BaseSwipeAdapter { ArrayList<HashMap<String,
public class ListViewAdapter extends BaseSwipeAdapter {
ArrayList<HashMap<String, String>> array = TodasAsCategorias.getListaCategorias();
String Designacao, K_PRODUTO;
public static final String favoritos = "favoritos";
private Context mContext;
public ListViewAdapter(Context mContext) {
this.mContext = mContext;
}
@Override
public int getSwipeLayoutResourceId(int position) {
return R.id.swipe;
}
@Override
public View generateView(final int position, ViewGroup parent) {
final View v = LayoutInflater.from(mContext).inflate(R.layout.list_item_cat, null);
SwipeLayout swipeLayout = (SwipeLayout) v.findViewById(getSwipeLayoutResourceId(position));
v.findViewById(R.id.imgBtnFav).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Designacao = (array.get(position)).get("Designacao");
K_PRODUTO = (array.get(position)).get("K_PRODUTO");
Toast.makeText(mContext, "Adicionado aos favoritos", Toast.LENGTH_LONG).show();
SharedPreferences.Editor editor = getSharedPreferences(favoritos, MODE_PRIVATE).edit();
editor.putString("Designacao", Designacao);
editor.apply();
}
});
return v;
}
/*....*/
}
公共类ListViewAdapter扩展BaseSwipeAdapter{
ArrayList数组=todascategorias.getListaCategorias();
字符串设计,K_PRODUTO;
公共静态最终字符串favoritos=“favoritos”;
私有上下文;
公共ListViewAdapter(上下文mContext){
this.mContext=mContext;
}
@凌驾
公共内部getSwipeLayoutResourceId(内部位置){
返回R.id.swipe;
}
@凌驾
公共视图generateView(最终整数位置,视图组父级){
最终视图v=LayoutFlater.from(mContext)。充气(R.layout.list\u item\u cat,空);
SwipeLayout SwipeLayout=(SwipeLayout)v.findViewById(getSwipeLayoutResourceId(position));
v、 findviewbyd(R.id.imgBtnFav).setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Designacao=(array.get(position)).get(“Designacao”);
K_PRODUTO=(array.get(position)).get(“K_PRODUTO”);
Toast.makeText(mContext,“Adicionado aos favoritos”,Toast.LENGTH_LONG.show();
SharedReferences.Editor=GetSharedReferences(favoritos,MODE_PRIVATE).edit();
编辑器.putString(“designaco”,designaco);
editor.apply();
}
});
返回v;
}
/*....*/
}
它总是给我同样的错误,无法解析方法“getSharedReferences(java.lang.String)”,也无法解析符号“MODE_PRIVATE”
此处确实需要帮助,在web上找不到任何帮助:/GetSharedReferences()需要访问上下文
mContext.getSharedPreferences
试一试
尽力
SharedPreferences.Editor editor = mContext.getSharedPreferences(favoritos, Context.MODE_PRIVATE).edit();
将onClick方法置于generate下view@BasilBattikhi为什么呢在生成视图之外?
SharedPreferences.Editor editor = mContext.getSharedPreferences(favoritos, Context.MODE_PRIVATE).edit();