我是Android开发的新手,我已经学习了大约4个月。
我正在尝试让我的应用程序上下文使用名为picasso的库。我构建了一个服装适配器来将图像加载到我的imageview。
但是我在获取应用程序上下文时遇到了一些问题,我尝试使用getBaseContext,getActivity(),并创建了一个变量来获取上下文,但它没有用。
我正在使用片段构建我的应用程序,我的代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_one, container, false);
final ArrayList alEvents = new ArrayList<String>();
eventsAdapter = new costumeadapter(getActivity(), alEvents,
R.layout.list, new String[] { ITEM_NAME, ITEM_EVENT },
new int[] { R.id.name, R.id.current_event });
lvEvents.setAdapter(eventsAdapter);
...
}
我的服装适配器:
public class costumeadapter extends SimpleAdapter {
Context context;
public costumeadapter(FragmentActivity fragmentActivity,
List<? extends Map<String, ?>> data, int resource, String[] from,
int[] to) {
super(fragmentActivity, data, resource, from, to);
// TODO Auto-generated constructor stub
}
public View getView(final int position, final View convertView,
final ViewGroup parent) {
View v = super.getView(position, convertView, parent);
ImageView bg_image = (ImageView) v.findViewById(R.id.bg_image);
Picasso.with(context)
.load("http://pplware.sapo.pt/wp-content/uploads/2015/06/Wallpaper_10.jpg")
.into(bg_image);
return v;
}
}
你们可以给我任何解决方案吗?感谢。
答案 0 :(得分:1)
使用convertView.getContext()
或v.getContext()
获取传递给Picasso.with
方法的上下文:
Picasso.with(convertView.getContext())
.load("<IMAGE_URL>")
.into(bg_image);
答案 1 :(得分:0)
在适配器中,声明:
final Context localContext;
之后:
public costumeadapter(FragmentActivity fragmentActivity,
List<? extends Map<String, ?>> data, int resource, String[] from,
int[] to) {
super(fragmentActivity, data, resource, from, to);
this.localContext = fragmentActivity;
}
在localContext变量中,您将拥有一个上下文。
答案 2 :(得分:0)
您应该包括如何尝试获取不适合您的上下文,但我认为这将有效
public View getView(final int position, final View convertView,
final ViewGroup parent) {
View v = super.getView(position, convertView, parent);
ImageView bg_image = (ImageView) v.findViewById(R.id.bg_image);
context = parent.getContext();
Picasso.with(context)
.load("http://pplware.sapo.pt/wp-content/uploads/2015/06/Wallpaper_10.jpg")
.into(bg_image);
return v;
}
答案 3 :(得分:0)
您可以将Activity传输到片段。在fragment类中,覆盖onActivityCreated以获取包含片段的Activity。然后从此活动获取上下文