Android 在ListView中设置项目不可单击并将其保存到首选项

Android 在ListView中设置项目不可单击并将其保存到首选项,android,listview,android-listview,sharedpreferences,Android,Listview,Android Listview,Sharedpreferences,我需要代码的帮助。我是编程和android领域的新手,所以我的代码可能写得不好 我想将列表视图中的特定项目设置为不可单击,并在下次打开应用程序或该活动时存储该信息。我可以用SharedReference来做吗?这只是我代码的一部分,但我希望你能有一个想法 使用有关位置的SharedReference信息禁用特定视图的方法。我不知道该把这个放在哪里。因为若我把它放在onClick方法中,那个么它需要先在某个项目上单击,但我想在单击之前设置为不可单击 for(int i=0; i<11; i

我需要代码的帮助。我是编程和android领域的新手,所以我的代码可能写得不好

我想将列表视图中的特定项目设置为不可单击,并在下次打开应用程序或该活动时存储该信息。我可以用SharedReference来做吗?这只是我代码的一部分,但我希望你能有一个想法

使用有关位置的SharedReference信息禁用特定视图的方法。我不知道该把这个放在哪里。因为若我把它放在onClick方法中,那个么它需要先在某个项目上单击,但我想在单击之前设置为不可单击

 for(int i=0; i<11; i++){
                    View disableView = getViewByPosition(preferences2.getInt("POSITION"+i, 7), list);
                    disableView.setOnClickListener(null);
                    disableView.setEnabled(false);
                }
for(int i=0;i lastListItemPosition){
返回listView.getAdapter().getView(pos,null,listView);
}否则{
final int childIndex=pos-firstListItemPosition;
返回listView.getChildAt(childIndex);
}
我存储位置信息的对话框的OnClick方法

DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {



                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        switch (which){
                            case DialogInterface.BUTTON_POSITIVE:
                                if (((position + 1)*2)<=numberOfStars){
                                ImageView imageView = (ImageView) view.findViewById(R.id.flagImg);
                                imageView.setImageResource(flagImageId[position]);

                                TextView textView = (TextView) view.findViewById(R.id.countryName);
                                textView.setText(countryNames[position]);

                                editor.putInt("FLAG" + position, flagImageId[position]);
                                editor.putString("NAME" + position, countryNames[position]);
                                editor.putInt("POSITION" + position, position);

                                editor.commit();

                                view.setOnClickListener(null);
                                view.setEnabled(false);



                            } else{

                                    Toast toast = Toast.makeText(UnlockFlagsActivity.this, "You dont have enough stars", Toast.LENGTH_LONG);
                                    toast.show();
                                    break;
                                }
                            case DialogInterface.BUTTON_NEGATIVE:
                                //No button clicked
                                break;
                        }
                    }
                };
DialogInterface.OnClickListener dialogClickListener=新建DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
开关(哪个){
case DialogInterface.BUTTON_阳性:

如果(((位置+1)*2)在Itemclick事件中,根据位置,您可以处理响应。如果您希望某些行不可单击,请相应地在代码中处理。您面临的问题是什么?好的,但当我第一次单击项目并满足要求时,我希望将不可单击永久设置为该项目,并存储该信息以供将来使用f应用程序或活动
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {



                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        switch (which){
                            case DialogInterface.BUTTON_POSITIVE:
                                if (((position + 1)*2)<=numberOfStars){
                                ImageView imageView = (ImageView) view.findViewById(R.id.flagImg);
                                imageView.setImageResource(flagImageId[position]);

                                TextView textView = (TextView) view.findViewById(R.id.countryName);
                                textView.setText(countryNames[position]);

                                editor.putInt("FLAG" + position, flagImageId[position]);
                                editor.putString("NAME" + position, countryNames[position]);
                                editor.putInt("POSITION" + position, position);

                                editor.commit();

                                view.setOnClickListener(null);
                                view.setEnabled(false);



                            } else{

                                    Toast toast = Toast.makeText(UnlockFlagsActivity.this, "You dont have enough stars", Toast.LENGTH_LONG);
                                    toast.show();
                                    break;
                                }
                            case DialogInterface.BUTTON_NEGATIVE:
                                //No button clicked
                                break;
                        }
                    }
                };