Спасибо Александр! все получилось! А можете рассказать, на что жалуется (не критично) студия в этой строке:
private Button buttonRed;
(выводится вот такой месседж-подсказка)
Field can be converted to a local variable less... (Ctrl+F1)
This inspection searches for redundant class fields that can be replaced with local variables. If all local usages of a field are preceded by assignments to that field, the field can be removed and its usages replaced with local variables.
В детстве любил программировать на бейсике 48 и осталась привычка узнавать досканально и синтаксис и оптимизацию=) Спасибо)
_________________________________________________________________
Добавлю: я примерно понял что требовала студия. При нажатии ALT+ENTER он предложил перевести переменную в "локальную" (???)
После чего код выглядел так:
public class MainActivity extends AppCompatActivity implements OnClickListener{
private TextView mInfoTextView;
private RelativeLayout mRelativeLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mInfoTextView = (TextView)findViewById(R.id.textView);
Button buttonRed = (Button) findViewById(R.id.buttonRed);
Button buttonYellow = (Button) findViewById(R.id.buttonYellow);
Button buttonGreen = (Button) findViewById(R.id.buttonGreen);
mRelativeLayout = (RelativeLayout)findViewById(R.id.relativeLayout);
buttonRed.setOnClickListener(this);
buttonYellow.setOnClickListener(this);
buttonGreen.setOnClickListener(this);
}
далее стандартно.
Программа работала, но теперь студия ругалась на:
buttonRed.setOnClickListener(this);
buttonYellow.setOnClickListener(this);
buttonGreen.setOnClickListener(this);
При том же нажатии на ALT+ENTER студия добавила перед каждой из этих строчек выражение:
assert buttonYellow != null;
Можете пояснить зачем и что это значит? Обычно null это пустой или дефолтный. Но я так и не понял это выражение.
Итоговый код хорошо работает, но он получился массивнее, чем нежели приучить кнопки к действию в разных методах. Вот код:
(закомментил код для способа с раздельными методами)
package ru.devotion.dev006;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.RelativeLayout;
import android.view.View.OnClickListener;
public class MainActivity extends AppCompatActivity implements OnClickListener{
private TextView mInfoTextView;
private RelativeLayout mRelativeLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mInfoTextView = (TextView)findViewById(R.id.textView);
Button buttonRed = (Button) findViewById(R.id.buttonRed);
Button buttonYellow = (Button) findViewById(R.id.buttonYellow);
Button buttonGreen = (Button) findViewById(R.id.buttonGreen);
mRelativeLayout = (RelativeLayout)findViewById(R.id.relativeLayout);
assert buttonRed != null;
buttonRed.setOnClickListener(this);
assert buttonYellow != null;
buttonYellow.setOnClickListener(this);
assert buttonGreen != null;
buttonGreen.setOnClickListener(this);
}
@Override
public void onClick(View v){
switch (v.getId()) {
case R.id.buttonRed: mInfoTextView.setText(R.string.red);
mRelativeLayout.setBackgroundColor(getResources().getColor(R.color.redColor));
break;
case R.id.buttonYellow: mInfoTextView.setText(R.string.yellow);
mRelativeLayout.setBackgroundColor(getResources().getColor(R.color.yellowColor));
break;
case R.id.buttonGreen: mInfoTextView.setText(R.string.green);
mRelativeLayout.setBackgroundColor(getResources().getColor(R.color.greenColor));
break;
}
}
}
//package ru.devotion.dev006;
// import android.support.v7.app.AppCompatActivity;
// import android.os.Bundle;
// import android.view.View;
// import android.widget.RelativeLayout;
// import android.widget.TextView;
//public class MainActivity extends AppCompatActivity {
// private RelativeLayout mRelativeLayout;
// private TextView mInfoTextView;
// @Override
// protected void onCreate(Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
// mRelativeLayout = (RelativeLayout)findViewById(R.id.relativeLayout);
// mInfoTextView = (TextView)findViewById(R.id.textView);
// }
// public void onRedButtonClick(View view) {
// mInfoTextView.setText(R.string.red);
// mRelativeLayout.setBackgroundColor(getResources().getColor(R.color.redColor));
// }
// public void onYellowButtonClick(View view) {
// mInfoTextView.setText(R.string.yellow);
// mRelativeLayout.setBackgroundColor(getResources().getColor(R.color.yellowColor));
// }
// public void onGreenButtonClick(View view) {
// mInfoTextView.setText(R.string.green);
// mRelativeLayout.setBackgroundColor(getResources().getColor(R.color.greenColor));
// }
//}