[DEV ANDROID] Aide sur une application basique | 2eme activite

  • Réponses :0
Mathieu Peyro
  • Posts de Forum 1

13 juin 2016 à 21:39:48 via site

Bonsoir à tous!!

Je viens ici en quête d'aide sur la réalisation d'une application.

Je cherche à développer une app permettant l'inscription de joueurs à un tournoi de jeu vidéo.

Elle est très simple (une classe "Joueur" et un ArrayList qui me permet d'avoir une liste de tous mes joueurs).

J'ai une deuxième activité qui permet d'afficher les statistiques par jeu (si je rentre 100 joueurs, elle affiche, enfin devrait afficher, le nombre de joueur par jeu, la moyenne d'âge des joueurs, etc.).

C'est là qu'est le hic! Lorsque je run l'application, je n'arrive pas à lancer ma seconde activité, j'ai passé 4h cet après midi à relire mon code et chercher des solutions mais je ne vois vraiment pas où est l'erreur...

Pourriez vous me dire où est le hic?

Merci d'avance!!!

Voici le code : (pas mal de trucs en commentaire pour simplifier et faire qu'une partie de mes tests)

MainActivity.java

package com.survivebox.mathieu.lanwan;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

ArrayList <Joueur>JoueurList;

EditText nom, age, score;
RadioGroup choixjeu, reglement;
RadioButton hearthstone, minecraft, leagueoflegend, counterstrike;
RadioButton reglementok, reglementnok;
CheckBox menu;
ImageButton valider;
Button newact;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    nom = (EditText) findViewById(R.id.nom);
    age = (EditText) findViewById(R.id.age);
    score = (EditText) findViewById(R.id.score);

    choixjeu = (RadioGroup)findViewById(R.id.choixjeu);
    hearthstone = (RadioButton)findViewById(R.id.hearthstone);
    minecraft = (RadioButton)findViewById(R.id.minecraft);
    leagueoflegend = (RadioButton)findViewById(R.id.leagueoflegend);
    counterstrike = (RadioButton)findViewById(R.id.counterstrike);

    reglement = (RadioGroup)findViewById(R.id.reglement);
    reglementok = (RadioButton)findViewById(R.id.reglementok);
    reglementnok = (RadioButton)findViewById(R.id.reglementnok);

    menu = (CheckBox)findViewById(R.id.menu);

    valider = (ImageButton)findViewById(R.id.valider);
    newact = (Button)findViewById(R.id.newact);

    JoueurList = new ArrayList<>();

    valider.setOnClickListener(this);

    newact.setOnClickListener(this);
}

public void onClick(View v) {
    int ID = v.getId();

    int verif = 0;

    if(ID == valider.getId()){

        String nomjoueur = "";
        if(nom.getText().toString() != ""){
            nomjoueur = nom.getText().toString();
            verif++;
        }
        else{
            Toast.makeText(getApplicationContext(), "Il faut saisir un nom!!!", Toast.LENGTH_SHORT).show();
        }

        int agejoueur = Integer.parseInt(age.getText().toString());
        if(agejoueur <= 0 || agejoueur >= 100){
            Toast.makeText(getApplicationContext(), "L'age est incorrect!!!", Toast.LENGTH_SHORT).show();
            age.setText("");
        }
        else{
            verif++;
        }


        String scorejoueur = "";
        if(score.getText().toString() != ""){
            scorejoueur = score.getText().toString();
            verif++;
        }
        else{
            Toast.makeText(getApplicationContext(), "Il faut saisir un score!!!", Toast.LENGTH_SHORT).show();
        }



        boolean menustate = menu.isChecked();

        String jeujoueur="";
        boolean jeuChecked = false;
        int IDchoixjeu = choixjeu.getCheckedRadioButtonId();
        if(IDchoixjeu == hearthstone.getId()){
            jeujoueur = "hearthstone";
            jeuChecked = true;
            verif++;
        }
        if(IDchoixjeu == minecraft.getId()){
            jeujoueur = "minecraft";
            jeuChecked = true;
            verif++;
        }
        if(IDchoixjeu == leagueoflegend.getId()){
            jeujoueur = "leagueoflegend";
            jeuChecked = true;
            verif++;
        }
        if(IDchoixjeu == counterstrike.getId()){
            jeujoueur = "counterstrike";
            jeuChecked = true;
            verif++;
        }
        if(jeuChecked == false){
            Toast.makeText(getApplicationContext(), "Il vous faut choisir un jeu!!!", Toast.LENGTH_SHORT).show();
        }

        int IDreglement = reglement.getCheckedRadioButtonId();
        if(IDreglement == reglementok.getId()){
            verif++;
        }

        if(IDreglement == reglementnok.getId()){
            Toast.makeText(getApplicationContext(), "Pour vous inscrire, il vous faut accepter le réglement!!!", Toast.LENGTH_SHORT).show();
        }


        if(verif == 5){
            Joueur j1 = new Joueur(nomjoueur, jeujoueur, scorejoueur, agejoueur, menustate, true);

            JoueurList.add(j1);

            int i = JoueurList.size();
            Toast.makeText(getApplicationContext(), "Bienvenue "+JoueurList.get(i-1).nom+"!! Tu es le "+i+" joueur.", Toast.LENGTH_SHORT).show();

            nom.setText("");
            age.setText("");
            menu.setChecked(false);
            reglementnok.setChecked(true);
            hearthstone.setChecked(false);
            minecraft.setChecked(false);
            leagueoflegend.setChecked(false);
            counterstrike.setChecked(false);
            score.setText("");
        }

    }

    if(ID == newact.getId()){
        if(JoueurList.size()!=0){
            int nbjoueurhs = 0;
            float agemoyenhs = 0;
            int scoremaxhs = 0;

            int nbjoueurmc = 0;
            float agemoyenmc = 0;
            int scoremaxmc = 0;

            int nbjoueurlol = 0;
            float agemoyenlol = 0;
            int scoremaxlol = 0;

            int nbjoueurcs = 0;
            float agemoyencs = 0;
            int scoremaxcs = 0;

            int scoremax = 0;
            int idscoremax = 0;

            for(int i=0;i<JoueurList.size();i++){
                if(JoueurList.get(i).jeu.equals("hearthstone")){
                    nbjoueurhs++;
                    agemoyenhs=agemoyenhs+JoueurList.get(i).age;

                    if(Integer.parseInt(JoueurList.get(i).score)>scoremaxhs){
                        scoremaxhs = Integer.parseInt(JoueurList.get(i).score);
                    }
                }
                if(JoueurList.get(i).jeu.equals("minecraft")){
                    nbjoueurmc++;
                    agemoyenmc=agemoyenmc+JoueurList.get(i).age;

                    if(Integer.parseInt(JoueurList.get(i).score)>scoremaxmc){
                        scoremaxmc = Integer.parseInt(JoueurList.get(i).score);
                    }
                }
                if(JoueurList.get(i).jeu.equals("leagueoflegend")){
                    nbjoueurlol++;
                    agemoyenlol=agemoyenlol+JoueurList.get(i).age;

                    if(Integer.parseInt(JoueurList.get(i).score)>scoremaxlol){
                        scoremaxlol = Integer.parseInt(JoueurList.get(i).score);;
                    }
                }
                if(JoueurList.get(i).jeu.equals("counterstrike")){
                    nbjoueurcs++;
                    agemoyencs=agemoyencs+JoueurList.get(i).age;

                    if(Integer.parseInt(JoueurList.get(i).score)>scoremaxcs){
                        scoremaxcs = Integer.parseInt(JoueurList.get(i).score);
                    }
                }

                if(Integer.parseInt(JoueurList.get(i).score)>scoremax){
                    scoremax = Integer.parseInt(JoueurList.get(i).score);
                    idscoremax = i;
                }
            }

            agemoyenhs = (float) agemoyenhs/nbjoueurhs;
            agemoyenmc = (float) agemoyenmc/nbjoueurmc;
            agemoyenlol = (float) agemoyenlol/nbjoueurlol;
            agemoyencs = (float) agemoyencs/nbjoueurcs;

            //String jeu_gagnant = JoueurList.get(idscoremax).jeu;
            String jeu_gagnant = "counterstrike";

            Intent intent = new Intent(MainActivity.this,SecondActivity.class);

            final public String NBJOUEURHS = "nbjoueurhs";
            final public String NBJOUEURMC = "nbjoueurmc";
            final public String NBJOUEURLOL = "nbjoueurlol";
            final public String NBJOUEURCS = "nbjoueurcs";

            intent.putExtra(NBJOUEURHS, nbjoueurhs);
            intent.putExtra(NBJOUEURMC, nbjoueurmc);
            intent.putExtra(NBJOUEURLOL, nbjoueurlol);
            intent.putExtra(NBJOUEURCS, nbjoueurcs);

            /*intent.putExtra("agemoyenhs", agemoyenhs);
            intent.putExtra("agemoyenmc", agemoyenmc);
            intent.putExtra("agemoyenlol", agemoyenlol);
            intent.putExtra("agemoyencs", agemoyencs);

            intent.putExtra("scoremaxhs", scoremaxhs);
            intent.putExtra("scoremaxmc", scoremaxmc);
            intent.putExtra("scoremaxlol", scoremaxlol);
            intent.putExtra("scoremaxcs", scoremaxcs);

            intent.putExtra("jeugagnant", jeu_gagnant);*/

            startActivity(intent);
        }
        else{
            Toast.makeText(getApplicationContext(), "Il faut au moins un joueur!", Toast.LENGTH_SHORT).show();
        }
    }


}

}

SecondActivity.java

package com.survivebox.mathieu.lanwan;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class SecondActivity extends AppCompatActivity {

TextView nbjoueurhs;
TextView nbjoueurmc;
TextView nbjoueurlol;
TextView nbjoueurcs;

/*TextView agemoyenhs;
TextView agemoyenmc;
TextView agemoyenlol;
TextView agemoyencs;

TextView scoremaxhs;
TextView scoremaxmc;
TextView scoremaxlol;
TextView scoremaxcs;

TextView jeugagnant;*/

protected void OnCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second_activity);

    Toast.makeText(getApplicationContext(), "START SECONDE ACTIVITE", Toast.LENGTH_SHORT).show();

    nbjoueurhs = (TextView)findViewById(R.id.nbjoueurhs);
    nbjoueurmc = (TextView)findViewById(R.id.nbjoueurmc);
    nbjoueurlol = (TextView)findViewById(R.id.nbjoueurlol);
    nbjoueurcs = (TextView)findViewById(R.id.nbjoueurcs);

    /*agemoyenhs = (TextView)findViewById(R.id.agemoyenhs);
    agemoyenmc = (TextView)findViewById(R.id.agemoyenmc);
    agemoyenlol = (TextView)findViewById(R.id.agemoyenlol);
    agemoyencs = (TextView)findViewById(R.id.agemoyencs);

    scoremaxhs = (TextView)findViewById(R.id.scoremaxhs);
    scoremaxmc = (TextView)findViewById(R.id.scoremaxmc);
    scoremaxlol = (TextView)findViewById(R.id.scoremaxlol);
    scoremaxcs = (TextView)findViewById(R.id.scoremaxcs);

    jeugagnant = (TextView)findViewById(R.id.infogagnant);*/

    Intent intent = getIntent();

    final public String NBJOUEURHS = "nbjoueurhs";
    final public String NBJOUEURMC = "nbjoueurmc";
    final public String NBJOUEURLOL = "nbjoueurlol";
    final public String NBJOUEURCS = "nbjoueurcs";

    int nbhs=0;
    int nbmc=0;
    int nblol=0 ;
    int nbcs=0;

    if(intent != null){
        nbhs = intent.getIntExtra(NBJOUEURHS,0);
         nbmc = intent.getIntExtra(NBJOUEURMC,0);
         nblol = intent.getIntExtra(NBJOUEURLOL,0);
         nbcs = intent.getIntExtra(NBJOUEURCS,0);



        nbjoueurhs.setText(Integer.toString(nbhs));
       nbjoueurmc.setText(Integer.toString(nbmc));
       nbjoueurlol.setText(Integer.toString(nblol));
       nbjoueurcs.setText(Integer.toString(nbcs));

        Toast.makeText(getApplicationContext(), "DANS IF", Toast.LENGTH_SHORT).show();

    }
    else
    {   nbjoueurhs.setText("nbhs"+(nbhs));
        nbjoueurmc.setText("nbmc"+(nbmc));
        nbjoueurlol.setText("nblol"+(nblol));
        nbjoueurcs.setText("nbcs"+(nbcs));
        Toast.makeText(getApplicationContext(), "BUG", Toast.LENGTH_SHORT).show();
    }




}

}

Joueur.java

package com.survivebox.mathieu.lanwan;

/**
* Created by Mathieu on 13/06/2016.
*/
public class Joueur {
String nom, jeu, score;
int age;
boolean menu, reglement;

Joueur(String nom, String jeu, String score, int age, boolean menu, boolean reglement){
    this.nom = nom;
    this.jeu = jeu;
    this.score = score;
    this.age = age;
    this.menu = menu;
    this.reglement = reglement;
}

}

activity_main.xml


xmlns:android=""
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    xmlns:tools=""
    tools:context=""
    android:orientation="vertical">


    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/nom"
            android:id="@+id/affichenom"/>

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/saisie"
            android:id="@+id/nom"/>


    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/age"
            android:id="@+id/afficheage"/>

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/saisie"
            android:id="@+id/age"/>


    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/menu"
            android:id="@+id/affichemenu"/>

        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/menu"
            android:text="@string/oui"/>


    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/reglement"
            android:id="@+id/affichenom"/>

        <RadioGroup
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:id="@+id/reglement">

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/vrai"
                android:id="@+id/reglementok"/>

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/faux"
                android:id="@+id/reglementnok"
                android:checked="true"/>

        </RadioGroup>


    </LinearLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/choixjeu"/>
    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/choixjeu">

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hearthstone"
            android:id="@+id/hearthstone"/>

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Mincecraft"
            android:id="@+id/minecraft"/>

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="League Of Legend"
            android:id="@+id/leagueoflegend"/>

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Counter Strike"
            android:id="@+id/counterstrike"/>

    </RadioGroup>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/score"
            android:id="@+id/affichescore"/>

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/saisie"
            android:id="@+id/score"/>


    </LinearLayout>

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/valid"
        android:id="@+id/valider"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/newact"
        android:text="Lancer l'activité"/>

</LinearLayout>

second_activity.xml


xmlns:tools=""
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="">

<GridLayout xmlns:android=""
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:columnCount="4"
    android:rowCount="5">

    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@drawable/hearthstone1"/>
    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@drawable/minecraft1"/>
    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@drawable/lol1"/>
    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@drawable/css1"/>


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hearthstone"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Mincecraft"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="League of Legend"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Counter Strike"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/nbjoueurhs"/>
    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/nbjoueurmc"/>
    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/nbjoueurlol"/>
    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/nbjoueurcs"/>

    <!--<TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/agemoyenhs"/>
    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/agemoyenmc"/>
    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/agemoyenlol"/>
    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/agemoyencs"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/scoremaxhs"/>
    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/scoremaxmc"/>
    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/scoremaxlol"/>
    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/scoremaxcs"/>-->

</GridLayout>
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/infogagnant"
        android:text="info gagnant"/>

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android=""
    package="">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".SecondActivity"
            android:label="Statistiques" />
    </application>

</manifest>

Répondre