Android 链接未在web浏览器中打开

Android 链接未在web浏览器中打开,android,listview,listadapter,Android,Listview,Listadapter,我制作了ListView适配器,并在每一行中实现了唯一的URL,使用XML制作的相同按钮id,现在每当我尝试单击按钮时,它都会显示“强制关闭” p.S:我是新手 public class ResultListBaseAdapter extends BaseAdapter { private static ArrayList<ItemResults> ItemResultsarraylist; public static String[] metador = new

我制作了ListView适配器,并在每一行中实现了唯一的URL,使用XML制作的相同按钮id,现在每当我尝试单击按钮时,它都会显示“强制关闭”

p.S:我是新手

public class ResultListBaseAdapter extends BaseAdapter  {
    private static ArrayList<ItemResults> ItemResultsarraylist;
    public static String[] metador = new String[100];
    String manu;
    String mat;

    private LayoutInflater l_Inflater;
    private Context context;
    protected Context activity;

    public ResultListBaseAdapter() {
    }

    public ResultListBaseAdapter(Context context, ArrayList<ItemResults> resultc) {
        ItemResultsarraylist = resultc;
        l_Inflater = LayoutInflater.from(context);
        this.context=context;
    }

    public int getCount() {
        return ItemResultsarraylist.size();
    }

    public Object getItem(int position) {
        return ItemResultsarraylist.get(position);
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(final int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if (convertView == null) {
            convertView = l_Inflater.inflate(R.layout.item_results_view, null);
            holder = new ViewHolder();
            holder.txt_date = (TextView) convertView.findViewById(R.id.date);
            holder.txt_type = (TextView) convertView.findViewById(R.id.type);
            holder.txt_subject = (TextView) convertView.findViewById(R.id.subject);
            holder.txt_teacher = (TextView) convertView.findViewById(R.id.teacher);

            holder.url =(Button) convertView.findViewById(R.id.btns);


            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.txt_date.setText(ItemResultsarraylist.get(position).getDate());
        holder.txt_type.setText(ItemResultsarraylist.get(position).gettype());
        holder.txt_subject.setText(ItemResultsarraylist.get(position).getsubject());
        holder.txt_teacher.setText(ItemResultsarraylist.get(position).getteacher());

        holder.url.setOnClickListener(new OnClickListener()
        {
            public void onClick(View v )
            {
                mat=ItemResultsarraylist.get(position).geturl1();
                System.out.println("Mat value is"+mat);
                Uri uri = Uri.parse(mat);
                Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
                System.out.println("Uri is "+intent);
                activity.startActivity(intent);
            }
        });
        return convertView;
    }       
    static class ViewHolder {
        TextView txt_date;
        TextView txt_type;
        TextView txt_subject;
        TextView txt_teacher;
        Button url;

    }
}

我想是你的问题

activity.startActivity(intent); //Problem is here you never initialize the activity.
试试这个

holder.url.setOnClickListener(new OnClickListener()
{
    public void onClick(View v )
    {
        mat=ItemResultsarraylist.get(position).geturl1();
        System.out.println("Mat value is"+mat);
        Uri uri = Uri.parse(mat);
        Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
        System.out.println("Uri is "+intent);
        context.startActivity(intent); //Change here activity to context.
    }
}); 

public ResultListBaseAdapter(Context context, ArrayList<ItemResults> resultc) {
        ItemResultsarraylist = resultc;
        l_Inflater = LayoutInflater.from(context);
        this.context=context;
        this.activity = context;
}
公共ResultListBaseAdapter(上下文上下文,ArrayList resultc){ ItemResultsarraylist=resultc; l_Inflater=从(上下文)开始的布局更平坦; this.context=context; 这个活动=上下文; }
发布日志。。我认为问题在于System.out.println(“Mat值为”+Mat);。。。mat为空如果你不知道如何解释,使用System.out.println或logs还有什么意义?对不起,伙计stacktrace是什么意思?System.out.println是验证mat的值是否正确,你应该使用Log.v(“mat值为”,mat);如果我使用startActivity(意图);只有当它给我错误和修复我必须使startactivity方法在该类中不包括任何东西都德你真棒你解决了我的问题工作,我被困了6-6天的上下文。startactivity(意图);
public ResultListBaseAdapter(Context context, ArrayList<ItemResults> resultc) {
        ItemResultsarraylist = resultc;
        l_Inflater = LayoutInflater.from(context);
        this.context=context;
        this.activity = context;
}