2014-02-05 75 views
0

這裏是我的代碼:爲什麼吐司總是顯示10?

 LinearLayout linearLayout = (LinearLayout) findViewById(R.id.container); 
    for (i=0;i<10;i++) { 
     webView = new WebView(this); 
     webView.setId(i); 
     webView.getSettings().setJavaScriptEnabled(true); 
     String customHtml = "<p>WebView ID: <b>"+i+"</b></p>"; 
     webView.loadData(customHtml, "text/html", "UTF-8"); 
     webView.setOnTouchListener(new View.OnTouchListener() { 
      public boolean onTouch(View view, MotionEvent motionEvent) { 
       Toast.makeText(getApplicationContext(),"i: "+i,Toast.LENGTH_SHORT).show(); 
       return false; 
      } 
     }); 
     LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT); 
     lp.bottomMargin += 5; 
     linearLayout.addView(webView, lp); 
    } 

我想顯示吐司的WebView ID,但它顯示10始終。

請幫助解決這個問題。

+0

我想你有'我我;'作爲你的類實例變量? – marcinj

+0

@marcin_j是的,我在課堂上宣佈它 – Metalik

回答

2

變化:

Toast.makeText(getApplicationContext(),"i: "+view.getId(),Toast.LENGTH_SHORT).show(); 

通過對循環點擊事件發生的時間被完成,我已經是10

的最後一個值或做:

for (int i=0;i<10;i++) { 
      final int x=i; 
      webView = new WebView(this); 
      webView.setId(i); 
      webView.getSettings().setJavaScriptEnabled(true); 
      String customHtml = "<p>WebView ID: <b>"+i+"</b></p>"; 
      webView.loadData(customHtml, "text/html", "UTF-8"); 
      webView.setOnTouchListener(new View.OnTouchListener() { 
       public boolean onTouch(View view, MotionEvent motionEvent) { 
        Toast.makeText(getApplicationContext(),"i: "+x,Toast.LENGTH_SHORT).show(); 
        return false; 
       } 
      }); 
      LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT); 
      lp.bottomMargin += 5; 
      linearLayout.addView(webView, lp); 
     } 
0

正如你使用i作爲您網頁瀏覽的id,最簡單的變化將是:

Toast.makeText(..., "i: " + view.getId(), ...).show();