Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.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
Android CustomlistAdapter中的共享首选项_Android_Sharedpreferences - Fatal编程技术网

Android CustomlistAdapter中的共享首选项

Android CustomlistAdapter中的共享首选项,android,sharedpreferences,Android,Sharedpreferences,我需要将值存储在customlistadapter的SharedReference中。当我单击listview时,Edittext警报框将打开。在该警报框中,我们可以给出数量值。如果我单击“确定”警告框中的按钮,数量值应保存在共享首选项中。在我的情况下,当我单击listview时,应用程序正在崩溃。请帮助我找到解决方案。提前感谢 public CustomListAdapter(Activity activity, ArrayList<Movie> movieItems1,int G

我需要将值存储在customlistadapter的SharedReference中。当我单击listview时,Edittext警报框将打开。在该警报框中,我们可以给出数量值。如果我单击“确定”警告框中的按钮,数量值应保存在共享首选项中。在我的情况下,当我单击listview时,应用程序正在崩溃。请帮助我找到解决方案。提前感谢

public CustomListAdapter(Activity activity, ArrayList<Movie> movieItems1,int Groupid,Context context) 
    {
        this.activity = activity;
        this.movieItems = movieItems1;
        this.Groupid=Groupid;
        this.c=context;
        //this.arraylist = new ArrayList<Movie>();
        this.arraylist=movieItems1;

    }




    @Override
    public int getCount() {
        return movieItems.size();
    }

    @Override
    public Object getItem(int location) {
        return movieItems.get(location);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }



    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {

        if (inflater == null)
            inflater = (LayoutInflater) activity
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        if (convertView == null)
            convertView = inflater.inflate(R.layout.list_row, null);

        if (imageLoader == null)
            imageLoader = AppController.getInstance().getImageLoader();
        NetworkImageView thumbNail = (NetworkImageView) convertView
                .findViewById(R.id.thumbnail);
        TextView title = (TextView) convertView.findViewById(R.id.title);
        TextView rating = (TextView) convertView.findViewById(R.id.rating);
        // TextView genre = (TextView) convertView.findViewById(R.id.genre);
        // TextView year = (TextView)
        // convertView.findViewById(R.id.releaseYear);
        TextView quantityTextView = (TextView) convertView.findViewById(R.id.qty);

        /*quantityTextView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                handleQuntityClickEvent(position);

            }
        });*/




       MainActivity.listView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,int position, long id)
            {



                handleQuntityClickEvent(position,Groupid);




            }
        });


        // getting movie data for the row
        Movie m = movieItems.get(position);

        // thumbnail image
        thumbNail.setImageUrl(m.getThumbnailUrl(), imageLoader);


        title.setText(m.getTitle());

        quantityTextView.setText("" + m.getQuantity());



        rating.setText(m.getGenre().get(0) + " "+ m.getProductscale() + " " +"Rs."+ String.valueOf(m.getGenre().get(1)));


        String genreStr = "";
        for (String str : m.getGenre()) {
            genreStr += str + ", ";
        }
        genreStr = genreStr.length() > 0 ? genreStr.substring(0,
                genreStr.length() - 2) : genreStr;
        // genre.setText(genreStr);

        // release year
        // year.setText(String.valueOf(m.getYear()));




        return convertView;
    }

    /** 
     * launch a edi
     * 
     * @param position
     */
    protected void handleQuntityClickEvent(int position, final int Groupid) {
        // TODO launch a dialog with edittext. The view has OK and Cancel
        // button. if the OK button pressed then
        this.mPosition = position;

        Builder alertDialog = new AlertDialog.Builder(activity);
        final EditText editText = new EditText(activity);

        editText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);
        editText.setHint("Quantity");
        editText.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
                LayoutParams.WRAP_CONTENT));
        alertDialog.setView(editText);// set a editext view here
        alertDialog.setTitle("Add Quantity");


      sharedpreferences = c.getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
         final Editor editor = sharedpreferences.edit();



        alertDialog.setPositiveButton("OK",
                new DialogInterface.OnClickListener() {



                    @Override
                    public void onClick(DialogInterface dialog, int which) 
                    {


                        //SharedPreferences pref = mContext.getSharedPreferences("MyPref", Context.MODE_PRIVATE); 


                          editor.putInt("Userid", Groupid);
                         editor.commit(); 

                        handleOkButtonPressed(editText);
                        dialog.dismiss();
                    }
                });
        alertDialog.setNegativeButton("Cancel", null);
        alertDialog.show();
    }
而不是这条线

MainActivity.listView.setOnItemClickListener(new OnItemClickListener() {
使用


并将此代码块移动到getView()内部

同时添加Logcat详细信息为什么要在
getView
方法内部的listview中添加
setOnItemClickListener
?Logcat添加了@Kat Hat此错误是由于某个空值。在主活动中调用setOnItemClickListener,而不是在getView()内部调用setOnItemClickListener您还可以在SharedReferences中保存position、Groupid以在main中获取值activity@VibinRejiY:可能
alertDialog.setNegativeButton(“取消”,null)导致问题的行
MainActivity.listView.setOnItemClickListener(new OnItemClickListener() {
convertView.setOnClickListener(){
handleQuntityClickEvent(position,Groupid);
}