Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.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 共享首选项使用关联菜单保存Listview项_Android_Listview_Android Intent_Sharedpreferences_Contextmenu - Fatal编程技术网

Android 共享首选项使用关联菜单保存Listview项

Android 共享首选项使用关联菜单保存Listview项,android,listview,android-intent,sharedpreferences,contextmenu,Android,Listview,Android Intent,Sharedpreferences,Contextmenu,我有一个上下文菜单栏,它有两个图标……当我单击“保存”图标时,我想将我在列表视图中选中的所有项目存储在SharedReferences中;当我单击“加载”图标时,我想所有选中的项目都以高亮显示的形式显示在列表中 图标在OnActionItemClicked中声明为菜单项 任何想法都将不胜感激 我的班级: public class UserContacts extends ActionBarActivity { SimpleCursorAdapter mAdapter; Matr

我有一个上下文菜单栏,它有两个图标……当我单击“保存”图标时,我想将我在列表视图中选中的所有项目存储在SharedReferences中;当我单击“加载”图标时,我想所有选中的项目都以高亮显示的形式显示在列表中

图标在OnActionItemClicked中声明为菜单项

任何想法都将不胜感激

我的班级:

public class UserContacts extends ActionBarActivity {

    SimpleCursorAdapter mAdapter;
    MatrixCursor mMatrixCursor;
    ListView listview;
    int count = 0;
    SharedPreferences prf;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_user_contacts);

        // The contacts from the contacts content provider is stored in this cursor
        mMatrixCursor = new MatrixCursor(new String[] { "_id","name","photo","details"} );

        // Adapter to set data in the listview
        mAdapter = new SimpleCursorAdapter(getBaseContext(),
                R.layout.lv_layout,
                null,
                new String[] { "name","photo","details"},
                new int[] { R.id.tv_name,R.id.iv_photo,R.id.tv_details}, 0);

        // Getting reference to listview
        final ListView lstContacts = (ListView) findViewById(R.id.lst_contacts);

        // Setting the adapter to listview
        lstContacts.setAdapter(mAdapter);

        // Creating an AsyncTask object to retrieve and load listview with contacts
        ListViewContactsLoader listViewContactsLoader = new ListViewContactsLoader();

        // Starting the AsyncTask process to retrieve and load listview with contacts
        listViewContactsLoader.execute();

        //Selecting and highlighting the elements in the listview
        //Creating the context menu and the options for it
        listview = (ListView) findViewById(R.id.lst_contacts);
        listview.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
        listview.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
            @Override
            public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
                try
                {
                    final int checkedCount = listview.getCheckedItemCount();
                    mode.setTitle("Contacts: " + checkedCount);

                    if (checked)
                    {
                        count = count+1;
                        listview.getChildAt(position).setBackgroundColor(Color.parseColor("#6DCAEC"));
                    }
                    else
                    {
                        count = checkedCount;
                        listview.getChildAt(position).setBackgroundColor(Color.parseColor("#E7E8E9"));
                    }

                }
                catch (Exception e) {
                    e.printStackTrace();
                }
            }

            @Override
            public boolean onCreateActionMode(ActionMode mode, Menu menu) {

                MenuInflater inflater = mode.getMenuInflater();
                inflater.inflate(R.menu.contact_context_menu, menu);

                return true;
            }

            @Override
            public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
                return false;
            }

            @Override
            public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.delete_id:
                        Toast.makeText(getBaseContext(), count + " Contacts Deselected", Toast.LENGTH_SHORT).show();
                        count = 0;
                        mode.finish();
                    case R.id.save_id:
                        Toast.makeText(getBaseContext(), count + " Contacts Saved", Toast.LENGTH_SHORT).show();
                        count = 0;
                        mode.finish();
                    case R.id.load_id:
                        Toast.makeText(getBaseContext(), count + " Contacts Loaded", Toast.LENGTH_SHORT).show();
                        count = 0;
                        mode.finish();

                }
                return false;
            }

            @Override
            public void onDestroyActionMode(ActionMode mode) {

            }
        });

    }

你的代码怎么了?@Apurva…正如你所看到的,我正在调用contact.contract类中的数据…更靠近底部的是,当用户长时间单击时,会出现一个上下文菜单,我可以根据我单击的操作项执行各种任务…我的问题是保存和加载…我选择的要存储的项从SharedReferences中检索…目前我在SharefReferences上什么都没有,因为我不知道该怎么做?一个有起点的解释会更好吗?