什么[位置]完成了什么?

时间:2011-08-23 22:20:55

标签: java

这种方法有什么用?

 URL aURL = new URL(myRemoteImages[position]);

myRemoteImages是一个String列表,包含4个不同的变量。而且职位是

int position;

编辑:   所以,无论如何,我可以用其他可能的东西代替位置?

可能

 myRemoteImages{1,2,3,4};?

编辑:我使用它来获取cahce中每个图像的URI ...

public void getImagesfromCache(){
        ImageAdapter adapter = new ImageAdapter();

    String[] cachImages = myRemoteImages;

    try {   
     URL aURL2 = null;
     aURL2 = new URL(cachImages[position]);
     URI imageCacheUri = null;


     try {
            imageCacheUri = aURL2.toURI();
        } catch (URISyntaxException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        if(new File(new File(this.getApplicationContext().getCacheDir(), "thumbnails"),"" + imageCacheUri.hashCode()).exists()){
            Log.v("FOUND", "Images found in cache! Now being loaded!");
            String cacheFile = this.getApplicationContext().getCacheDir() +"/thumbnails/"+ imageCacheUri.hashCode();
            ImageView i = new ImageView(this.getApplicationContext());
            FileInputStream fis = null;
            try {
                fis = new FileInputStream(cacheFile);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            Bitmap bm = BitmapFactory.decodeStream(fis);

             i.setImageBitmap(bm);
             putBitmapInDiskCache(imageCacheUri, bm);

             Log.v("Loader", "Image saved to cache");

             ((Gallery) findViewById(R.id.gallery))
              .setAdapter(new ImageAdapter(MainMenu.this));
        }

    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

当你看到使用位置的位置时,我怎么能用另一种方式返回URL来获取缓存中的图像?

我可以将每个URI存储在SharePreference中并在onCreate()中获取它们吗?

6 个答案:

答案 0 :(得分:3)

它从特定位置的数组(myRemoteImages)中的元素指定的url字符串创建一个URL对象。

以下语法创建一个URL对象

URL aURL = new URL(<a string describing a URL>);

以下语法获取指定位置的String值

myRemoteImages[position]

因此,要获得每个职位的网址,您可以

URL url1 = new URL(myRemoteImages[0]);
URL url2 = new URL(myRemoteImages[1]);
URL url3 = new URL(myRemoteImages[2]);
URL url4 = new URL(myRemoteImages[3]);

虽然拥有一系列URL会好得多。所以它会是

URL [] urls = new URL[myRemoteImages.length];
for (int i = 0; i < myRemoteImages.length; i++) {
   urls[i] = myRemoteImages[i];
}

使用这一系列的URL,即使您知道只有4个图像,也可以轻松扩展,而无需更改任何代码。硬编码非常糟糕,从长远来看通常会导致错误。

答案 1 :(得分:1)

假设position是一个值为3的int。您发布的代码在执行时将如下所示:

URL aURL = new URL(myRemoteImages[3]);

myRemoteImages[3]表示:给我字符串列表myRemoteImages中的第三项。 new URL()将使用第三项作为 spec 参数创建URL的新实例。

答案 2 :(得分:1)

仅Java的List对象中没有list个变量。这是一个数组,position是从数组开头的偏移量值。数组与Python和其他语言中的列表不同。数组具有固定的大小并且是对象。

答案 3 :(得分:0)

position是要访问的数组(非列表)中的元素。如果你有4个字符串,那么position应该是0到3之间的整数。

myRemoteImages[0]将是第一张图片,myRemoteImages[3]将是第四张图片。

答案 4 :(得分:0)

您正在从数组元素创建新的URL,可能是String项的数组。

myRemoteImages如何宣布?

答案 5 :(得分:0)

myRemoteImages必须是数组,而不是List。

这是用于访问该索引处数组元素的java语法。