Как я могу отправить свои списки в другой класс в студии Android - PullRequest
0 голосов
/ 01 мая 2020

Я хочу создать генератор случайных команд.

  1. Пользователь вводит текст в EditText, подтверждает нажатием кнопки, и приложение получает текст в EditText, чтобы поместить его в список.
  2. Затем я использую метод 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 ) );

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