Я хочу создать генератор случайных команд.
- Пользователь вводит текст в EditText, подтверждает нажатием кнопки, и приложение получает текст в EditText, чтобы поместить его в список.
- Затем я использую метод
split
и shuffle
, чтобы получить 2 команды случайных людей
Но я не знаю, как отобразить список команд.
Код первого действия:
private AleaViewModel aleaViewModel;
EditText etaddjoueurs;
ImageButton addjoueurs;
RecyclerView rvaddjoueurs;
List<String> joueursaddlist = new ArrayList<>( );
JoueurAddAleaAdapter adapter;
Button generate;
public View onCreateView( @NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState ) {
aleaViewModel =
ViewModelProviders.of( this ).get( AleaViewModel.class );
View root = inflater.inflate( R.layout.fragment_alea, container, false );
etaddjoueurs = root.findViewById( R.id.joueurnameadd );
addjoueurs = root.findViewById( R.id.addjoueur );
rvaddjoueurs = root.findViewById( R.id.listaddjoueurs );
generate = root.findViewById( R.id.generate );
final ListView listView = new ListView( getActivity() );
generate.setOnClickListener( new View.OnClickListener( ) {
@Override
public void onClick( View v ) {
int taille = joueursaddlist.size( );
if (taille % 2 == 0 & taille > 3) {
Log.d( "Liste sans random", String.valueOf( joueursaddlist ) );
for (int i = 0; i < 5; i++) {
Collections.shuffle( joueursaddlist );
}
Log.d( "Liste apres random", String.valueOf( joueursaddlist ) );
List[] lists = split( joueursaddlist );
Intent intentMainActivity = new Intent(getActivity(), ListEquipes.class);
startActivity(intentMainActivity);
} else {
Toast.makeText( getActivity( ), "Il faut au que le nombre de joueurs soit pair pour former des equipes equilibrées", Toast.LENGTH_SHORT ).show( );
}
}
} );
addjoueurs.setOnClickListener( new View.OnClickListener( ) {
@Override
public void onClick( View v ) {
String s = etaddjoueurs.getText( ).toString( );
if (s.isEmpty( )) {
Toast.makeText( getActivity( ), "Tu ne peux pas envoyer un joueur vide", Toast.LENGTH_SHORT ).show( );
} else {
try {
String string = etaddjoueurs.getText( ).toString( );
joueursaddlist.add( string );
displayNom( joueursaddlist );
etaddjoueurs.setText( "" );
adapter.notifyItemInserted( joueursaddlist.size( ) - 1 );
Log.d( "test", String.valueOf( joueursaddlist ) );
} catch (NumberFormatException e) {
}
}
}
} );
return root;
}
private void displayNom( List<String> strings ) {
rvaddjoueurs.setLayoutManager( new LinearLayoutManager( getContext( ) ) );
adapter = new JoueurAddAleaAdapter( joueursaddlist );
rvaddjoueurs.setAdapter( adapter );
}
public static <T> List[] split( List<T> list ) {
List<T> equipe1 = new ArrayList<>( );
List<T> equipe2 = new ArrayList<>( );
int size = list.size( );
for (int i = 0; i < size; i++) {
if (i < (size + 1) / 2) {
equipe1.add( list.get( i ) );
} else {
equipe2.add( list.get( i ) );
}
}
return new List[]{equipe1, equipe2};
}
}
Второе действие, в котором я хочу отобразить списки
public class ListEquipes extends AppCompatActivity {
List<String> listEquipes1;
List<String> listEquipes2;
RecyclerView rvequipe1;
RecyclerView rvequipe2;
Context context;
JoueurListAleaAdapter adapter;
@Override
protected void onCreate( Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_list_equipes );
context = this;
rvequipe1 = findViewById( R.id.equipes1 );
rvequipe1.setAdapter( adapter );
rvequipe1.setLayoutManager( new LinearLayoutManager( this ) );
}
}