2011-11-05 22 views
2

我幾乎完成了我的appliaction ......但現在我不能使用ContentResolver的是這樣的:不能使用ContentResolver的

Bitmap imageBitmap = MediaStore.Images.Media.getBitmap(
      getContentResolver(), imageUri); // Problem!!!!! 

我不知道如何解決這個問題?它的工作原理,如果我使用這個語法在我的主要活動... 但它不適用於我的類CustomItemizedOverlay。

我標記我必須修復線...

蝕說:所述梅索德getContentResolver()是未定義的類型CustomItemizedOverlay

import java.util.ArrayList; 
import android.app.AlertDialog; 
import android.content.Context; 
import android.graphics.drawable.Drawable; 
import android.net.Uri; 

import com.google.android.maps.ItemizedOverlay; 
import com.google.android.maps.OverlayItem; 
import android.app.Dialog; 
import android.app.AlertDialog; 
import android.widget.TextView; 
import android.view.View; 
import android.widget.ImageView; 
import android.view.LayoutInflater; 
import android.widget.Toast; 
import android.view.ViewGroup; 
import android.provider.MediaStore; 
import android.provider.MediaStore.Images; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.app.Application; 
import android.content.ContentResolver; 
import android.content.Context; 




public class CustomItemizedOverlay extends ItemizedOverlay<OverlayItem> { 

    private ArrayList<OverlayItem> mapOverlays = new ArrayList<OverlayItem>(); 
    private String title; 
    private String id_string; 
    private String type; 
    private String name; 
    private String adress; 
    private String webpage; 
    private String opening_hours; 
    private Context context; 
    private Uri imageUri; 

    public CustomItemizedOverlay(Drawable defaultMarker) { 
     super(boundCenterBottom(defaultMarker)); 
    } 

    public CustomItemizedOverlay(Drawable defaultMarker, Context context,String title,String id_string,String type,String name,String adress,String webpage,String opening_hours,Uri imageUri) { 
     this(defaultMarker); 
     this.context = context; 
     this.title = title; 
     this.id_string = id_string; 
     this.type = type; 
     this.name =name; 
     this.adress = adress; 
     this.webpage=webpage; 
     this.opening_hours = opening_hours; 
     this.imageUri = imageUri; 

    } 

    @Override 
    protected OverlayItem createItem(int i) { 
     return mapOverlays.get(i); 
    } 

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

    @Override 
    protected boolean onTap(int index) { 
     OverlayItem item = mapOverlays.get(index); 
     AlertDialog.Builder dialog = new AlertDialog.Builder(context); 

     dialog.setTitle(title); 
     View layout = View.inflate(context, R.layout.dialog, null); 

     TextView id_text = (TextView)layout.findViewById(R.id.id); 
     id_text.setText("id:"+id_string); 
     TextView type_text = (TextView)layout.findViewById(R.id.type); 
     type_text.setText("type:"+type); 
     TextView name_text = (TextView)layout.findViewById(R.id.name); 
     name_text.setText("name:"+name); 
     TextView adress_text = (TextView)layout.findViewById(R.id.adress); 
     adress_text.setText("adress:"+adress); 
     TextView webpage_text = (TextView)layout.findViewById(R.id.webpage); 
     webpage_text.setText("webpage:"+webpage); 
     TextView opening_hours_text = (TextView)layout.findViewById(R.id.opening_hours); 
     opening_hours_text.setText("opening_hours:"+opening_hours); 


     ContentResolver con = new Contentresolver(); 

     ImageView imageView = (ImageView) layout.findViewById(R.id.photo); 
     Bitmap imageBitmap = MediaStore.Images.Media.getBitmap(
       getContentResolver(), imageUri); // Problem! HERE!!!! 
     imageView.setImageBitmap(imageBitmap); 


     dialog.setView(layout); 
     dialog.show(); 
     return true; 
    } 

    public void addOverlay(OverlayItem overlay) { 
     mapOverlays.add(overlay); 
     this.populate(); 
    } 

}

回答

5

getContentResolver是一種方法,其屬於Context的子類,如Activity。你的班級沒有這樣的方法,所以你不能使用它。最簡單的解決方法是,以活動爲您提供參考存儲在您的新類:

Context context; 
public CustomItemizedOverlay(Context myContext, Drawable defaultMarker) { 
    super(boundCenterBottom(defaultMarker)); 
    context = myContext; 
} 

,然後調用context.getContentResolver(...)當你需要它。

+0

將getActivity()。getContentResolver()的作品,如果我的類擴展到片段? http://stackoverflow.com/questions/33274732/image-selected-not-displaying-in-mainactivity/33275152?noredirect=1#comment54350957_33275152 – John

相關問題