Если выписка с кнопкой фона и макет деятельности - PullRequest
1 голос
/ 19 ноября 2011

Как вызвать фон кнопок и макет активности для сопоставления в операторе if.Не могу понять, как это сделать.

  Context mContext = getApplicationContext();
  final Dialog dialog = new Dialog(mContext);
  dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

  final Button quicktab = (Button) findViewById(R.id.btnA4);
  quicktab.setOnClickListener(new OnClickListener()
  {
      @Override
      public void onClick(View v)
      {
          Button a4 = (Button)findViewById(R.id.btnA4);
          if ( a4.getBackground() == (R.drawable.quick_btn_background));      ****ERROR****
          { 
              if (this.setContentView() = this.setContentView(findViewById(R.layout.layout_24));    ****ERROR****
              {
                  dialog.setContentView(R.layout.popup_24);
              }
              else (this.setContentView() = this.setContentView(findViewById(R.layout.layout_63));    ****ERROR****
              {
                  dialog.setContentView(R.layout.popup_63);
              }
          }
          else 
          {
              finish();
          }
      }
  });

Все ошибки в кодировании или помечены.Любая помощь будет хорошей.Не могу найти ничего, относящегося к этому типу оператора if.

**** Обновление ******** Все еще возникают ошибки в новом коде.в коде getBackground я получаю сообщение об ошибке: несовместимые типы операндов Drawable и int.в коде getContentView я получаю сообщение об ошибке: создайте метод getContentView.

Context mContext = getApplicationContext();
final Dialog dialog = new Dialog(mContext);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

final Button quicktab = (Button) findViewById(R.id.btnA4);
quicktab.setOnClickListener(new OnClickListener()
{
  @Override
  public void onClick(View v)
  {
      Button a4 = (Button)findViewById(R.id.btnA4);
      if (a4.getBackground() == R.drawable.quick_btn_background)
      { 
          if (this.getContentView() == R.layout.layout_24)
          {
              dialog.setContentView(R.layout.popup_24);
          }
          else if(this.getContentView() == R.layout.layout_63)
          {
              dialog.setContentView(R.layout.popup_63);
          }
      }
      else finish();

    }
  });

Ответы [ 2 ]

2 голосов
/ 19 ноября 2011

Пожалуйста, не добавляйте точку с запятой в ваши операторы if и добавляйте несколько пропущенных закрывающих скобок, и синтаксис должен быть в порядке.Вот так:

  Context mContext = getApplicationContext();
  final Dialog dialog = new Dialog(mContext);
  dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

  final Button quicktab = (Button) findViewById(R.id.btnA4);
  quicktab.setOnClickListener(new OnClickListener() 
  {
      @Override
      public void onClick(View v)
      {
          Button a4 = (Button) findViewById(R.id.btnA4);
          if (a4.getBackground() == R.drawable.quick_btn_background)
          { 
              if (this.setContentView() == this.setContentView(findViewById(R.layout.layout_24)))
              {
                  dialog.setContentView(R.layout.popup_24);
              }
              else if(this.setContentView() == this.setContentView(findViewById(R.layout.layout_63))
              {
                  dialog.setContentView(R.layout.popup_63);
              }
              else finish();
          }
    }
});

Однако я совсем не уверен, что вам нужно сравнивать this.setContentView() == this.setContentView(...).Разве вы не имеете в виду getContentView где-то?Надеюсь, это поможет, удачи ...

0 голосов
/ 20 ноября 2011

R.drawable.quick_btn_background - это числовой идентификатор ресурса (int или long - не уверен), а a4.getBackground() возвращает Drawable. Так что сравнивать эти два не имеет смысла.

...