
我正在研究我的文本冒险游戏,并想知道是否有一种更简单的方法来编写重复的代码块,例如我在下面的内容.
在该块中,向用户呈现北,东,南和西的N,E,S,W.所以我分别编写每个监听器,并在每个监听器中包含一个try / catch块.但现在整个代码块似乎都是重复的.
这是代码块:
btnnorth.setonClickListener(new OnClickListener() { @OverrIDe public voID onClick(VIEw v) { tvIntro.setText("You go north"); String testString = "nothing"; try { testString = Encounter.EncounterGeneratorText(); } catch (Exception e) { e.printstacktrace(); } testString = Encounter.EncounterGeneratorText(); tvIntro.setText(testString); try { Thread.sleep(500); } catch (InterruptedException e) { // Todo auto-generated catch block e.printstacktrace(); } tvIntro.setText(testString); } }); btnEast.setonClickListener(new OnClickListener() { @OverrIDe public voID onClick(VIEw v) { tvIntro.setText("You go east"); String testString = "nothing"; try { testString = Encounter.EncounterGeneratorText(); } catch (Exception e) { e.printstacktrace(); } testString = Encounter.EncounterGeneratorText(); tvIntro.setText(testString); try { Thread.sleep(500); } catch (InterruptedException e) { // Todo auto-generated catch block e.printstacktrace(); } tvIntro.setText(testString); } }); btnSouth.setonClickListener(new OnClickListener() { @OverrIDe public voID onClick(VIEw v) { tvIntro.setText("You go south"); String testString = "nothing"; try { testString = Encounter.EncounterGeneratorText(); } catch (Exception e) { e.printstacktrace(); } testString = Encounter.EncounterGeneratorText(); tvIntro.setText(testString); try { Thread.sleep(500); } catch (InterruptedException e) { // Todo auto-generated catch block e.printstacktrace(); } tvIntro.setText(testString); } }); btnWest.setonClickListener(new OnClickListener() { @OverrIDe public voID onClick(VIEw v) { tvIntro.setText("you go west"); String testString = "nothing"; try { testString = Encounter.EncounterGeneratorText(); } catch (Exception e) { e.printstacktrace(); } testString = Encounter.EncounterGeneratorText(); tvIntro.setText(testString); try { Thread.sleep(500); } catch (InterruptedException e) { // Todo auto-generated catch block e.printstacktrace(); } tvIntro.setText(testString); }; });解决方法:
您可以创建一个所有按钮都将使用的OnClickListener,在该OnClickListener中,您将检测单击了哪个按钮并在switch语句中执行特定于方向的任务.
像这样的东西:
private OnClickListener DirectionClickListner = new OnClickListener() { public voID onClick(VIEw v) { switch (v.getID()) { case R.ID.north: //Set your strings for north break; case R.ID.west: //Set your strings for West break; case R.ID.east: //Set your strings for East break; case R.ID.south: //Set your strings for South break; } }}; 总结 以上是内存溢出为你收集整理的java – 我的代码是否过于重复?全部内容,希望文章能够帮你解决java – 我的代码是否过于重复?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)