Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从自定义ListViewAdapter向SharedReferences添加值_Java_Android_Sharedpreferences - Fatal编程技术网

Java 从自定义ListViewAdapter向SharedReferences添加值

Java 从自定义ListViewAdapter向SharedReferences添加值,java,android,sharedpreferences,Java,Android,Sharedpreferences,我试图从列表中为SharedReferences添加值,其想法是当用户单击按钮时,列表项将添加到收藏夹页面,但我无法这样做,我认为问题在于我使用的是自定义ListViewAdapter,此listview允许我向左滑动列表项,以便显示按钮。 我不能将SharedReferences放在这门课上,这就是我所拥有的: public class ListViewAdapter extends BaseSwipeAdapter { ArrayList<HashMap<String,

我试图从列表中为SharedReferences添加值,其想法是当用户单击按钮时,列表项将添加到收藏夹页面,但我无法这样做,我认为问题在于我使用的是自定义ListViewAdapter,此listview允许我向左滑动列表项,以便显示按钮。 我不能将SharedReferences放在这门课上,这就是我所拥有的:

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