В приложении для Android у меня есть 2 действия.MainActivity - это список баскетболистов (17 игроков) и PlayerDetailActivity с их именем, возрастом, ростом, положением и изображениями.Как уменьшить использование оператора if-else?Я знаю, что лучше создать класс Player со всеми его атрибутами, но я застрял.
Вот мой код MainActivity
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
String[] bostonCeltics = new String[] {"Kyrie Irving", "Jayson Tatum", "Gordon Hayward", "Robert Williams", "Jabari Bird", "Al Horford", "Jaylen Brown", "Marcus Smart", "Terry Rozier", "Aron Baynes", "Marcus Morris", "Brad Wanamaker", "P.J.Dozier", "Daniel Theis", "Guerschon Yabusele", "Semi Ojeleye", "Walter Lemon, Jr"};
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
ArrayAdapter<String> bostonCelticsAdapter = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1, bostonCeltics);
listView.setAdapter(bostonCelticsAdapter);
listView.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent moveToDetailIntent = new Intent(getBaseContext(), PlayerDetailActivity.class);
moveToDetailIntent.putExtra("playerName", bostonCeltics[position]);
startActivity(moveToDetailIntent);
}
}
Вот мой код PlayerDetailActivity
открытый класс PlayerDetailActivity расширяет AppCompatActivity {
TextView nameTextView;
TextView ageTextView;
TextView heightTextView;
TextView positionTextView;
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_player_detail);
nameTextView = (TextView) findViewById(R.id.nameTextView);
ageTextView = (TextView) findViewById(R.id.ageTextView);
heightTextView = (TextView) findViewById(R.id.heightTextView);
positionTextView = (TextView) findViewById(R.id.positionTextView);
imageView = (ImageView) findViewById(R.id.imageView);
// Имя игрока
String playerName = (String) getIntent().getExtras().get("playerName");
nameTextView.setText(playerName);
// Возраст игрока
if (playerName.equals("Kyrie Irving")) {
ageTextView.setText("Birth date: 23-Mar-92");
}
if (playerName.equals("Jayson Tatum")) {
ageTextView.setText("Birth date: 3-Mar-98");
}
if (playerName.equals("Gordon Hayward")) {
ageTextView.setText("Birth date: 23-Mar-90");
}
...