2013-12-09 95 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

相关问题