【发布时间】:2014-11-01 04:06:03
【问题描述】:
当我从列表中选择项目时,我的应用程序不断崩溃。我已经尝试了以前关于这个问题的问题中可用的所有内容。我知道这个问题与意图和上下文有关。我似乎无法弄清楚为什么这不起作用。有的请帮忙
package com.example.f4f;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class RecipesAdapter extends BaseAdapter implements OnClickListener{
private Context context;
private MainActivity activity;
private LayoutInflater layoutInflater;
private ArrayList<Recipes> recipes;
public RecipesAdapter(Context context){
this.context = context;
}
public RecipesAdapter (MainActivity a, LayoutInflater l, ArrayList<Recipes> data)
{
this.activity = a;
this.layoutInflater = l;
this.recipes = data;
}
@Override
public int getCount(){
return this.recipes.size();
}
@Override
public boolean areAllItemsEnabled ()
{
return true;
}
@Override
public Object getItem(int arg0){
return null;
}
@Override
public long getItemId(int pos) {
return pos;
}
@Override
public View getView(int pos, View convertView, ViewGroup parent) {
MyViewHolder holder;
if (convertView == null) {
convertView = layoutInflater.inflate (R.layout.list_items, parent, false);
View myView = (View) convertView.findViewById(R.id.listitem);
if(pos % 2 == 0){
myView.setBackgroundColor(Color.parseColor("#d3d3d3"));
}
holder = new MyViewHolder();
holder.recipeName = (TextView) convertView.findViewById(R.id.textView1);
holder.rating = (TextView) convertView.findViewById(R.id.textView2);
//holder.storyDesp = (TextView) convertView.findViewById(R.id.textView3);
convertView.setTag(holder);
}
else {
holder = (MyViewHolder) convertView.getTag();
}
convertView.setOnClickListener(this);
Recipes recipe = recipes.get(pos);
holder.recipe = recipe;
holder.recipeName.setText(recipe.getrecipeName());
holder.rating.setText(recipe.getRating());
//holder.storyDesp.setText(news.getDesp());
return convertView;
}
@Override
public void onClick(View v) {
MyViewHolder holder = (MyViewHolder) v.getTag();
if (v instanceof View) {
//String selectedrecipe = holder.recipe.getID();
//String selectedrecipeurl = "http://www.yummly.com/recipe/external/"+selectedrecipe;
//Uri uri = Uri.parse("http://www.yummly.com/recipe/external/"+selectedrecipe);
Intent intent = new Intent(this.context, SelectedRecipeWebView.class);
//intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
}
public static class MyViewHolder {
public TextView recipeName, rating;
public Recipes recipe;
}
}
09-08 01:10:05.933: D/dalvikvm(3346): GC_FOR_ALLOC 释放 21K,3% 释放 3931K/4028K,暂停 2ms,总共 2ms 09-08 01:10:05.933: D/dalvikvm(3346): GC_FOR_ALLOC 释放 5K,3% 释放 4147K/4252K,暂停 2ms,总共 2ms 09-08 01:10:05.937: I/dalvikvm-heap(3346): 将堆(碎片情况)增加到 6.537MB,分配 2536932 字节 09-08 01:10:05.941: D/dalvikvm(3346): GC_FOR_ALLOC 释放
【问题讨论】:
-
有人可以帮我解决这个问题吗?我尝试将上下文上下文添加到: public RecipesAdapter (MainActivity a, LayoutInflater l, ArrayList
data) { this.activity = a; this.layoutInflater = l; this.recipes = 数据; }