当webview打开时,Android应用程序崩溃

问题描述:

我正在尝试将主要活动的变量(url_1)值传递给webview。但是,当我点击按钮应用程序崩溃。我也使用putExtra,但它不起作用。请看下面的代码。当webview打开时,Android应用程序崩溃

public class CustomAdapter extends BaseAdapter{ 
    String [] result; 
    Context context; 
    int [] imageId; 
    private static LayoutInflater inflater=null; 
    public CustomAdapter(MainActivity mainActivity, String[] prgmNameList, int[] prgmImages) { 
     // TODO Auto-generated constructor stub 
     result=prgmNameList; 
     context=mainActivity; 
     imageId=prgmImages; 
     inflater = (LayoutInflater)context. 
       getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 
    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return result.length; 
    } 

    @Override 
    public Object getItem(int position) { 
     // TODO Auto-generated method stub 
     return position; 
    } 

    @Override 
    public long getItemId(int position) { 
     // TODO Auto-generated method stub 
     return position; 
    } 

    public class Holder 
    { 
     TextView tv; 
     ImageView img; 
    } 
    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     Holder holder=new Holder(); 
     View rowView; 
     rowView = inflater.inflate(R.layout.new_custom_list, null); 
     holder.tv=(TextView) rowView.findViewById(R.id.textView1); 
     holder.img=(ImageView) rowView.findViewById(R.id.imageView1); 
     holder.tv.setText(result[position]); 
     holder.img.setImageResource(imageId[position]); 
     rowView.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Intent myIntent = null; 
       if (position == 0) { 
        CustomAdapter.this.context.startActivity(new Intent(CustomAdapter.this.context, BalanceActivity.class)); 
       } 
       if (position == 1) { 
        String url_1 = "http://www.facebook.com"; 
        myIntent.putExtra("url", url_1); 
        CustomAdapter.this.context.startActivity(new Intent(CustomAdapter.this.context, WebShow1.class)); 

       } 
      } 
     }); 
     return rowView; 
    } 
} 
+0

有downvoted [紧急乞](https://meta.stackoverflow.com/questions/326569/under-what-的情况下,可以-I加紧急 - 或其它相似的短语对我-任务)。请不要在将来的问题中以这种方式解决志愿者问题,谢谢! – halfer

+0

在这个问题上找不到紧急乞讨......是否被删除? – Opiatefuchs

您的myIntent为空。你与创造它:

Intent myIntent = null; 

,并没有初始化你想放一些数据里:

myIntent.putExtra("url", url_1); 

我不知道你想myIntent做什么,但它必须被初始化,在

:例如用

myIntent = getIntent(); 
在适配器

的活动,你可以从喜欢的上下文中引用它

Intent myIntent = ((Activity) context).getIntent(); 

,并确保意图不是做一些与它之前空:

if(myIntent!=null){ 
//do your stuff 
} 

,或者比如你要开始一个新的活动(你的情况):

Intent myIntent = null; 
       if (position == 0) { 
        myIntent = new Intent(CustomAdapter.this.context, BalanceActivity.class); 
        CustomAdapter.this.context.startActivity(myIntent); 
       } 
       if (position == 1) { 

        myIntent = new Intent(CustomAdapter.this.context, WebShow1.class); 
        String url_1 = "http://www.facebook.com"; 
        myIntent.putExtra("url", url_1); 
        CustomAdapter.this.context.startActivity(myIntent); 

       } 
+0

您好@Opiatefuchs感谢您的快速回复......我添加了整个活动代码。请让我知道我需要编辑什么。我是一名初学者程序员,仍然在学习编码的基础知识。 –

+0

它像一个魅力。从你的答案中学习新内容,,,谢谢... –

你正在做的完全错误我的意图变量将始终为空。并且您正在开始使用新的Intent对象的活动,然后将vaibales添加到不同的意图对象。您需要使用相同的Intent对象,并首先将变量放入其中,然后启动意图。

这样

Intent myIntent = new Intent(this,WebShow1.class); 
myIntent.putExtra("url", url_1); 
startActivity(myIntent); 

和在web视图类

String url = getIntent().getExtras().getString("url");