Android-как изменить цвет на кнопке и изменить видимость на макете, из другого класса? - PullRequest
0 голосов
/ 30 сентября 2018

когда я нажимаю на кнопку:

1: он должен изменить цвет кнопки на красный, а другие кнопки на белый.

2: сделать макет видимым, а другой макет невидимым.

Мой код выглядит следующим образом:


SimpleActivity

public class SimpleActivity extends AppCompatActivity {

  protected Button arealBtn;
  protected LinearLayout arealLayout;
  private SimpleBtnClk simpleBtnClk;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_simple);

    simpleBtnClk = new SimpleBtnClk();

    arealBtn = (Button) findViewById(R.id.arealbtn);

     arealLayout = (LinearLayout) findViewById(R.id.arealLayout);


    arealBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            simpleBtnClk.ArealBtn(); 

            //arealLayout.setVisibility(View.VISIBLE);
            //arealBtn.setTextColor(Color.RED);
            //lengthLayout.setVisibility(View.INVISIBLE);
            //lengthBtn.setTextColor(Color.WHITE);

        }
    });
}

}

Класс SimpleBtnClk:

package simpleapps.com.converterv1;

import android.graphics.Color;
import android.view.View;

public class SimpleBtnClk extends SimpleActivity{


public void ArealBtn(){
    arealLayout.setVisibility(View.VISIBLE);
    arealBtn.setTextColor(Color.RED);
    lengthLayout.setVisibility(View.INVISIBLE);
    lengthBtn.setTextColor(Color.WHITE);
}

Теперь, еслия удаляю

simpleBtnClk.ArealBtn ();

и удаляю метки комментариев на

arealLayout.setVisibility (View.VISIBLE);
arealBtn.setTextColor (Color.RED);
lengthLayout.setVisibility (View.INVISIBLE);
lengthBtn.setTextColor (Color.WHITE);

тогда работает нормально, нокогда я пытаюсь использовать код simpleBtnClk.ArealBtn (); приложение перестает работать.

Я не вижу проблемы, 4 дня снимался в ней и просто не вижу ее.

-edit:

1, возможно, мне следовало сказать, что яЯ новичок в Java, Android и программирования.

1 Ответ

0 голосов
/ 30 сентября 2018

Прежде всего вам нужно передать ссылку на свою деятельность во втором классе, чтобы вы могли добавить ее к параметру или передать ее конструктору класса, а затем с помощью ссылки вы можете изменить свою кнопку.

Дляпример с параметром это будет выглядеть так:

public void ArealBtn(SimpleAcvitvity activity){
    activity.arealLayout.setVisibility(View.VISIBLE);
    activity.arealBtn.setTextColor(Color.RED);
    activity.lengthLayout.setVisibility(View.INVISIBLE);
    activity.lengthBtn.setTextColor(Color.WHITE);
}

И в вашем первом поле активности изменить с защищенного на общедоступный;

С этого:

  protected Button arealBtn;
  protected LinearLayout arealLayout;

На это:

  public Button arealBtn;
  public LinearLayout arealLayout;

А также вы забыли создать ссылку на lengthLayout и lengthBtn.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...