2016-11-13 130 views
-3

我正在嘗試將主要活動的變量(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

回答

1

您的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

它像一個魅力。從你的答案中學習新內容,,,謝謝... –

1

你正在做的完全錯誤我的意圖變量將始終爲空。並且您正在開始使用新的Intent對象的活動,然後將vaibales添加到不同的意圖對象。您需要使用相同的Intent對象,並首先將變量放入其中,然後啓動意圖。

這樣

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

和在web視圖類

String url = getIntent().getExtras().getString("url"); 
相關問題