2013-12-09 57 views
-8

我有一個項目,我想實現6000左右其他if語句,但問題是我在我的類文件中出現錯誤。是否有可能將代碼分成兩個類文件?

這裏有錯誤,我得到錯誤的一些截圖1 http://pho.to/4I2Zh

錯誤2 http://pho.to/4I2c8

有沒有辦法分裂或分我別的,如果兩個類的語句?或從XML文件調用它們?

這裏是我的類文件

public class WebViewActivity extends Activity { 
    WebView web; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_web_view); 
     web = (WebView) findViewById(R.id.webView1); 
     web.setWebViewClient(new myWebClient()); 
     web.getSettings().setJavaScriptEnabled(true); 
     int pos = getIntent().getIntExtra("key",0); 
     if(pos==0) 
     { 
     web.loadUrl("file:///android_asset/1work1.html"); 
     } 
     else if(pos==1) 
     { 
     web.loadUrl("file:///android_asset/work1.html"); 
     } 
     else if(pos==2) 
     { 
     web.loadUrl("file:///android_asset/work2.html"); 
     } 
     else if(pos==3) 
     { 
     web.loadUrl("file:///android_asset/work3.html"); 
     } 
     // similarly for 4 and 5 and so on. 
    } 

    public class myWebClient extends WebViewClient 
    { 
     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      // TODO Auto-generated method stub 
      super.onPageStarted(view, url, favicon); 
     } 

     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      // TODO Auto-generated method stub 

      view.loadUrl(url); 
      return true; 

     } 
     @Override 
     public void onReceivedError(WebView view, int errorCode, 
       String description, String failingUrl) { 
     } 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      // TODO Auto-generated method stub 
      super.onPageFinished(view, url); 

     } 
    } 
} 
+1

得到任何示例代碼? – admdrew

+8

6000 if語句?聽起來像你有設計問題......你能澄清你的問題嗎? – 2Dee

+0

正如我在你的評論中寫的上一個問題:6000 ifs是一個壞主意...... – Selvin

回答

5

它看起來像你的代碼可以減少到這一點:

int pos = getIntent().getIntExtra("key",0); 
if(pos==0) 
{ 
    web.loadUrl("file:///android_asset/1work1.html"); 
} 
else 
{ 
    web.loadUrl("file:///android_asset/work" + pos + ".html"); 
} 
+0

你能解釋我如何在我的代碼中實現這個? –

+3

只需用Jon的'else'語句替換5999'else if'語句 – OrhanC1

+1

刪除所有6000個ifs並用此替換。除非ifs中還有一些其他模式,否則您將不得不擴展代碼以符合它們。 – jonhopkins

相關問題