检查uri是否已经在arraylist <uri> </uri>中

时间:2014-02-08 11:18:08

标签: android listview uri

我在我的ListView上附加图片uri。我可以像这样附上相同的uri:

enter image description here

我想要做的是设置一个条件,如果该图像uri已经在列表视图上,我将无法像上面那样(相同的uri)附加它。我正在考虑在array_list.add(uri)之前设置if和else条件;但是我不知道在检查列表视图中是否已经存在图像uri时可以设置什么条件。

我该怎么做?感谢。

ListView lv;
ArrayList<Uri> array_list = new ArrayList<Uri>();
ArrayAdapter<Uri> array_adapter;

final int RQS_LOADIMAGE = 0;

onCreate ...

Button button1 = (Button) v.findViewById(R.id.button1);
button1.setOnClickListener(this);

array_adapter = new ArrayAdapter<Uri>(getActivity(), android.R.layout.simple_list_item_1, array_list);
lv = (ListView) v.findViewById(R.id.list);
lv.setAdapter(array_adapter);

@Override
    public void onClick(View v) {

        Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(intent, RQS_LOADIMAGE);                          
    }

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

      if (requestCode == RQS_LOADIMAGE) {

          if(resultCode == MainActivity.RESULT_OK) {
            Uri uri = data.getData();
            array_list.add(uri);
            array_adapter.notifyDataSetChanged();
          }
      }
    }

2 个答案:

答案 0 :(得分:1)

条件应该是:

if (!your_array_list.contains(uri_text))
  your_array_list.add(uri_text);

因此,您在添加之前检查并确定是否已存在包含该文本的URI。

答案 1 :(得分:1)

List<T>有一个方法contains(),用于检查对象是否存在。所以,根据您的要求,

Uri uri = data.getData();

if (!array_list.contains(uri))
  array_list.add(uri);