Я работаю над простым приложением для оценки бейсбола, в котором пользователь выбирает противоборствующие команды из двух выпадающих меню «Элементы дизайна материала».Пользователь отслеживает результаты, нажимая кнопку в соответствующем столбце команды.Есть кнопка сброса, которая сбрасывает все оценки обратно на «0».Я понял эту часть.Мне нужна помощь, я хочу, чтобы эта кнопка сброса также сбрасывала счетчик обратно к значению по умолчанию, показывая подсказку.Я смутно знаком с тем, как это работает с обычным вращателем, но Google отказался от вращателей в пользу AutoCompleteTextview внутри TextInputLayout в Material Design.Я наткнулся на clearListSelection (), но не совсем уверен, что правильно его реализую.Любая помощь будет принята с благодарностью.
Улучшение визуального представления приложения
MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.AppCompatAutoCompleteTextView;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.text.InputType;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.TextView;
import com.google.android.material.internal.Experimental;
public class MainActivity extends AppCompatActivity {
private static final String[] TEAMS_A = new String[]{
"Arizona Diamondbacks",
"Atlanta Braves",
"Baltimore Orioles",
"Boston Red Sox",
"Chicago Cubs",
"Chicago White Sox",
"Cincinnati Reds",
"Cleveland Indians",
"Colorado Rockies",
"Detroit Tigers",
"Miami Marins",
"Houston Astros",
"Kansas City Royals",
"Los Angeles Angels",
"Los Angeles Dodgers",
"Milwaukee Brewers",
"Minnesota Twins",
"New York Mets",
"New York Yankess",
"Oakland Athletics",
"Philadelphia Phillies",
"Pittsburgh Pirates",
"St. Louis Cardinals",
"San Diego Padres",
"San Francisco Giants",
"Seattle Mariners",
"Tampa Bay Rays",
"Texas Rangers",
"Toronto Blue Jays",
"Washington Nationals"
};
private static final String[] TEAMS_B = new String[]{
"Arizona Diamondbacks",
"Atlanta Braves",
"Baltimore Orioles",
"Boston Red Sox",
"Chicago Cubs",
"Chicago White Sox",
"Cincinnati Reds",
"Cleveland Indians",
"Colorado Rockies",
"Detroit Tigers",
"Miami Marins",
"Houston Astros",
"Kansas City Royals",
"Los Angeles Angels",
"Los Angeles Dodgers",
"Milwaukee Brewers",
"Minnesota Twins",
"New York Mets",
"New York Yankess",
"Oakland Athletics",
"Philadelphia Phillies",
"Pittsburgh Pirates",
"St. Louis Cardinals",
"San Diego Padres",
"San Francisco Giants",
"Seattle Mariners",
"Tampa Bay Rays",
"Texas Rangers",
"Toronto Blue Jays",
"Washington Nationals"
};
int scoreTeamA = 0;
int scoreTeamB = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.dropdown_menu_popup_item, TEAMS_A);
final AutoCompleteTextView filledExposedDropdown = findViewById(R.id.filled_exposed_dropdown_team_a);
filledExposedDropdown.setAdapter(adapter);
ArrayAdapter<String> adapter2 = new ArrayAdapter<>(this, R.layout.dropdown_menu_popup_item, TEAMS_B);
final AutoCompleteTextView filledExposedDropdown2 = findViewById(R.id.filled_exposed_dropdown_team_b);
filledExposedDropdown2.setAdapter(adapter2);
displayForTeamA(0);
displayForTeamB(0);
}
/**
* Increase the score for Team A by 4 points.
*/
public void addFourForTeamA(View v) {
scoreTeamA = scoreTeamA + 4;
displayForTeamA(scoreTeamA);
}
/**
* Increase the score for Team A by 3 points.
*/
public void addThreeForTeamA(View v) {
scoreTeamA = scoreTeamA + 3;
displayForTeamA(scoreTeamA);
}
/**
* Increase the score for Team A by 2 points.
*/
public void addTwoForTeamA(View v) {
scoreTeamA = scoreTeamA + 2;
displayForTeamA(scoreTeamA);
}
/**
* Increase the score for Team A by 1 point.
*/
public void addOneForTeamA(View v) {
scoreTeamA = scoreTeamA + 1;
displayForTeamA(scoreTeamA);
}
/**
* Increase the score for Team B by 4 points.
*/
public void addFourForTeamB(View v) {
scoreTeamB = scoreTeamB + 4;
displayForTeamB(scoreTeamB);
}
/**
* Increase the score for Team B by 3 points.
*/
public void addThreeForTeamB(View v) {
scoreTeamB = scoreTeamB + 3;
displayForTeamB(scoreTeamB);
}
/**
* Increase the score for Team B by 2 points.
*/
public void addTwoForTeamB(View v) {
scoreTeamB = scoreTeamB + 2;
displayForTeamB(scoreTeamB);
}
/**
* Increase the score for Team B by 1 point.
*/
public void addOneForTeamB(View v) {
scoreTeamB = scoreTeamB + 1;
displayForTeamB(scoreTeamB);
}
/**
* Resets the score for both teams back to 0.
*/
public void resetScore(View v) {
scoreTeamA = 0;
scoreTeamB = 0;
displayForTeamA(scoreTeamA);
displayForTeamB(scoreTeamB);
clearListSelection();
}
/**
* Displays the given score for Team A.
*/
public void displayForTeamA(int score) {
TextView scoreView = (TextView) findViewById(R.id.team_a_score);
scoreView.setText(String.valueOf(score));
}
/**
* Displays the given score for Team B.
*/
public void displayForTeamB(int score) {
TextView scoreView = (TextView) findViewById(R.id.team_b_score);
scoreView.setText(String.valueOf(score));
}
public void clearListSelection() {
AutoCompleteTextView filledExposedDropdown = findViewById(R.id.filled_exposed_dropdown_team_a);
filledExposedDropdown.clearListSelection();
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:override="true">
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop"
android:src="@drawable/yankees_3_new" />
<LinearLayout
android:id="@+id/score_columns"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="56dp"
android:layout_marginBottom="16dp"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/team_a_column"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:fontFamily="sans-serif-medium"
android:gravity="center_horizontal"
android:padding="16dp"
android:text="@string/team_a"
android:textColor="@android:color/white"
android:textSize="24sp" />
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu"
android:id="@+id/textinputlayout_teamA"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textColorHint="@color/text_color">
<AutoCompleteTextView
android:id="@+id/filled_exposed_dropdown_team_a"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:editable="false"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@android:color/white" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/team_a_score"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:fontFamily="sans-serif-medium"
android:gravity="center_horizontal"
android:textColor="@android:color/white"
android:textSize="56sp"
tools:text="0" />
<com.google.android.material.button.MaterialButton
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="8dp"
android:onClick="addFourForTeamA"
android:text="@string/four_runs" />
<com.google.android.material.button.MaterialButton
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="8dp"
android:onClick="addThreeForTeamA"
android:text="@string/three_runs" />
<com.google.android.material.button.MaterialButton
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="8dp"
android:onClick="addTwoForTeamA"
android:text="@string/two_runs" />
<com.google.android.material.button.MaterialButton
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="40dp"
android:onClick="addOneForTeamA"
android:text="@string/one_run" />
</LinearLayout>
<LinearLayout
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@android:color/white" />
<LinearLayout
android:id="@+id/team_b_column"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:fontFamily="sans-serif-medium"
android:gravity="center_horizontal"
android:padding="16dp"
android:text="@string/team_b"
android:textColor="@android:color/white"
android:textSize="24sp" />
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:hint="@string/team_b"
android:textColorHint="@color/text_color">
<AutoCompleteTextView
android:id="@+id/filled_exposed_dropdown_team_b"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:editable="false"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@android:color/white" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/team_b_score"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:fontFamily="sans-serif-medium"
android:gravity="center_horizontal"
android:textColor="@android:color/white"
android:textSize="56sp"
tools:text="0" />
<com.google.android.material.button.MaterialButton
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="8dp"
android:onClick="addFourForTeamB"
android:text="@string/four_runs" />
<com.google.android.material.button.MaterialButton
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="8dp"
android:onClick="addThreeForTeamB"
android:text="@string/three_runs" />
<com.google.android.material.button.MaterialButton
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="8dp"
android:onClick="addTwoForTeamB"
android:text="@string/two_runs" />
<com.google.android.material.button.MaterialButton
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="40dp"
android:onClick="addOneForTeamB"
android:text="@string/one_run" />
</LinearLayout>
</LinearLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/reset_button"
android:layout_width="128dp"
android:layout_height="wrap_content"
android:layout_below="@id/score_columns"
android:layout_centerHorizontal="true"
android:onClick="resetScore"
android:text="@string/reset_button" />
<com.google.android.material.button.MaterialButton
android:id="@+id/reset_button_teamA"
android:layout_width="128dp"
android:layout_height="wrap_content"
android:layout_below="@id/reset_button"
android:layout_centerHorizontal="true"
android:onClick="resetScore"
android:text="@string/reset_button" />
</RelativeLayout>