0

このコードをより簡単/短くすることは可能ですか? 25 以上のオブジェクトでコードを使用しています。

  Tekst = text and Knapp = buttons.
  final View v = inflater.inflate(R.layout.activity_utesteder, container, false);
  exodusTekst = (TextView) v.findViewById(R.id.exodusTekst);
  exodusKnapp = (Button) v.findViewById(R.id.exodusKnapp);

  exodusKnapp.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
          exodusTekst.setVisibility((exodusTekst.getVisibility() == View.VISIBLE) ? View.GONE : View.VISIBLE);
          exodusImage.setVisibility((exodusImage.getVisibility() == View.VISIBLE) ? View.GONE : View.VISIBLE);
          fotballpubenTekst.setVisibility(View.GONE);
          ovenpoTekst.setVisibility(View.GONE);
          kvarteretTekst.setVisibility(View.GONE);
          hulenTekst.setVisibility(View.GONE);
          sjobodenTekst.setVisibility(View.GONE);
          downstairsTekst.setVisibility(View.GONE);
          garageTekst.setVisibility(View.GONE);
          insideTekst.setVisibility(View.GONE);
          finnegansTekst.setVisibility(View.GONE);
          kosmoTekst.setVisibility(View.GONE);
          ricksTekst.setVisibility(View.GONE);
          lilleTekst.setVisibility(View.GONE);
          brukbarTekst.setVisibility(View.GONE);
          finckenTekst.setVisibility(View.GONE);
          scotsmanTekst.setVisibility(View.GONE);
          dreamsTekst.setVisibility(View.GONE);
          metroTekst.setVisibility(View.GONE);
          luuxTekst.setVisibility(View.GONE);
          tidiTekst.setVisibility(View.GONE);
          bryggenNightclubTekst.setVisibility(View.GONE);
          felizTekst.setVisibility(View.GONE);
          jacobAallTekst.setVisibility(View.GONE);
          kaosTekst.setVisibility(View.GONE);
          calibarTekst.setVisibility(View.GONE);
          fotballpubenImage.setVisibility(View.GONE);
          ovenpoImage.setVisibility(View.GONE);
          kvarteretImage.setVisibility(View.GONE);
          hulenImage.setVisibility(View.GONE);
          sjobodenImage.setVisibility(View.GONE);
          downstairsImage.setVisibility(View.GONE);
          garageImage.setVisibility(View.GONE);
          insideImage.setVisibility(View.GONE);
          finnegansImage.setVisibility(View.GONE);
          kosmoImage.setVisibility(View.GONE);
          ricksImage.setVisibility(View.GONE);
          lilleImage.setVisibility(View.GONE);
          brukbarImage.setVisibility(View.GONE);
          finckenImage.setVisibility(View.GONE);
          scotsmanImage.setVisibility(View.GONE);
          dreamsImage.setVisibility(View.GONE);
          metroImage.setVisibility(View.GONE);
          luuxImage.setVisibility(View.GONE);
          tidiImage.setVisibility(View.GONE);
          bryggenNightclubImage.setVisibility(View.GONE);
          felizImage.setVisibility(View.GONE);
          jacobAallImage.setVisibility(View.GONE);
          kaosImage.setVisibility(View.GONE);
          calibarImage.setVisibility(View.GONE);
      }
  });
  exodusImage = (ImageButton) v.findViewById(R.id.exodusImage);

  exodusImage.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
          Intent intent = new Intent();
          intent.setAction(Intent.ACTION_VIEW);
          intent.addCategory(Intent.CATEGORY_BROWSABLE);
          intent.setData(Uri.parse("http://goo.gl/maps/OEFPh"));
          startActivity(intent);
      }
  });
  fotballpubenTekst = (TextView) v.findViewById(R.id.fotballpubenTekst);
  fotballpubenKnapp = (Button) v.findViewById(R.id.fotballpubenKnapp);

  fotballpubenKnapp.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
          fotballpubenTekst.setVisibility((fotballpubenTekst.getVisibility() == View.VISIBLE) ? View.GONE : View.VISIBLE);
          fotballpubenImage.setVisibility((fotballpubenImage.getVisibility() == View.VISIBLE) ? View.GONE : View.VISIBLE);
          exodusTekst.setVisibility(View.GONE);
          ovenpoTekst.setVisibility(View.GONE);
          kvarteretTekst.setVisibility(View.GONE);
          hulenTekst.setVisibility(View.GONE);
          sjobodenTekst.setVisibility(View.GONE);
          downstairsTekst.setVisibility(View.GONE);
          garageTekst.setVisibility(View.GONE);
          insideTekst.setVisibility(View.GONE);
          finnegansTekst.setVisibility(View.GONE);
          kosmoTekst.setVisibility(View.GONE);
          ricksTekst.setVisibility(View.GONE);
          lilleTekst.setVisibility(View.GONE);
          brukbarTekst.setVisibility(View.GONE);
          finckenTekst.setVisibility(View.GONE);
          scotsmanTekst.setVisibility(View.GONE);
          dreamsTekst.setVisibility(View.GONE);
          metroTekst.setVisibility(View.GONE);
          luuxTekst.setVisibility(View.GONE);
          tidiTekst.setVisibility(View.GONE);
          bryggenNightclubTekst.setVisibility(View.GONE);
          felizTekst.setVisibility(View.GONE);
          jacobAallTekst.setVisibility(View.GONE);
          kaosTekst.setVisibility(View.GONE);
          calibarTekst.setVisibility(View.GONE);
          exodusImage.setVisibility(View.GONE);
          ovenpoImage.setVisibility(View.GONE);
          kvarteretImage.setVisibility(View.GONE);
          hulenImage.setVisibility(View.GONE);
          sjobodenImage.setVisibility(View.GONE);
          downstairsImage.setVisibility(View.GONE);
          garageImage.setVisibility(View.GONE);
          insideImage.setVisibility(View.GONE);
          finnegansImage.setVisibility(View.GONE);
          kosmoImage.setVisibility(View.GONE);
          ricksImage.setVisibility(View.GONE);
          lilleImage.setVisibility(View.GONE);
          brukbarImage.setVisibility(View.GONE);
          finckenImage.setVisibility(View.GONE);
          scotsmanImage.setVisibility(View.GONE);
          dreamsImage.setVisibility(View.GONE);
          metroImage.setVisibility(View.GONE);
          luuxImage.setVisibility(View.GONE);
          tidiImage.setVisibility(View.GONE);
          bryggenNightclubImage.setVisibility(View.GONE);
          felizImage.setVisibility(View.GONE);
          jacobAallImage.setVisibility(View.GONE);
          kaosImage.setVisibility(View.GONE);
          calibarImage.setVisibility(View.GONE);
      }
  });
  fotballpubenImage = (ImageButton) v.findViewById(R.id.fotballpubenImage);

  fotballpubenImage.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
          Intent intent = new Intent();
          intent.setAction(Intent.ACTION_VIEW);
          intent.addCategory(Intent.CATEGORY_BROWSABLE);
          intent.setData(Uri.parse("http://goo.gl/maps/h9mRw"));
          startActivity(intent);
      }
  });
4

3 に答える 3

1

はい。トリックを実行する 1 つのメソッドを作成できます。

private void hide(View... widgets) {
   for (View v: widgets) {
      v.setVisibility(View.GONE);
   }
}

ウィジェットを表示する場合と同等です (使用する場合):

private void show(View... widgets) {
   for (View v: widgets) {
      v.setVisibility(View.VISIBLE);
   }
}

すべてのウィジェットはから拡張されるViewため、どのウィジェットに対しても上記のメソッドを恐れることなく使用できます。

使用法(あなたの場合):

hide(exodusTekst, exodusImage, fotballpubenTekst, ovenpoTekst);
于 2013-10-31T11:29:11.290 に答える
0

すべての画像に対して setVisibility のメソッドを作成し、そのメソッドを使用します。

または、任意のレイアウトですべてのビューを使用すると、そのレイアウトだけが非表示になります...

于 2013-10-31T11:30:37.463 に答える
0

変更するビューが多すぎる場合は、2 つのレイアウトを作成し、 onclick を呼び出してそれらを切り替えsetContentView()、次にを呼び出してonResume()onCreate()長い実装をonResume()

于 2013-10-31T11:57:36.690 に答える