IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

probleme avec findViewById


Sujet :

Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 190
    Points : 61
    Points
    61
    Par défaut probleme avec findViewById
    Bonjour,

    J'ai un problème avec la fonction findViewById qui me renvoie null. Voici mon code dans la fonction calcul(). Cette fonction est appelée sur le click sur une checkbox dans le onCreate. Le tableau tab1 est construit dans le onCreate.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    	public void calcul(){
    		double montants = 0;
    		for(int i = 0; i <tab1.getChildCount();i++){
    			View view = tab1.getChildAt(i);
    			EditText montant = (EditText) view.findViewById(R.id.row_montant);
    			try{
    			montants+= Double.parseDouble(montant.getText().toString());
    			}catch (NumberFormatException e){
    				AlertDialog.Builder builder = new AlertDialog.Builder(this.getParent());
                    String error = "Ce montant doit être un nombre";
                    builder.setTitle("Erreur");
                    builder.setMessage(error).setCancelable(true).setNeutralButton("Ok", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            dialog.cancel();
                        }
                    });
                    AlertDialog alert = builder.create();
                    alert.show();
                    montant.setText("");
                    return;
    			}
    		}	}
    Merci pour votre aide

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Euh.... difficile de deviner...
    Cette méthode renvoie null quand elle n'arrive pas à trouver la vue ayant l'identifiant spécifié.

    Pour que l'on puisse mieux t'aider, montre nous plus de code : la partie onCreate de ton activity, ton layout utilisé pour cette Activity, et le layout utilisé pour la variable tab1.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 190
    Points : 61
    Points
    61
    Par défaut
    Voici le code de ma méthode onCreate :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    @Override
    	public void onCreate(Bundle savedInstanceState) {
    	        super.onCreate(savedInstanceState);
     
    	        setContentView(R.layout.moredetails_infos);
    			Cursor = Fab.getFab(this);
    			emptyMessage = (TextView) findViewById(R.id.empty_message);
    			tab1 = (TableLayout) findViewById(R.id.tabLayout1);
    			saveBtn = (Button) findViewById(R.id.validateButton);
     
    			if(Cursor==null){
    	        	emptyMessage.setVisibility(View.VISIBLE);
    	        	tab1.setVisibility(View.GONE);
    		saveBtn.setVisibility(View.GONE);
    	        }else{
    	        	startManagingCursor(Cursor);
    	        	if (Cursor.moveToFirst()) {
    	    	        faMap = new HashMap<Long, View>();
    	    	        fabs = new ArrayList<Fab>();
     
    	        		do {
    	        			long id = Cursor.getLong(Cursor.getColumnIndex(Const.COL_ID));
    	        			View view = LayoutInflater.from(this.getParent()).inflate(R.layout.patient_moredetails_infos_row_layout, null);
    	        			view.setId((int) id);
    	        			cb = (CheckBox) view.findViewById(R.id.patient_moredetails_infos);
    	        			cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
     
    	        				public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    	        						View v = (View) buttonView.getParent();
    	        						MatrixCursor MatrixCursor = Fab.getFabById(MoreDetailsInfosFab.this, v.getId());
    	        						startManagingCursor(faMatrixCursor);
    	        						faMatrixCursor.moveToPosition(0);
    	        						if (cb.isChecked()) {
    	        							montant.setEnabled(false);
    	        						        						} else if (!cb.isChecked()) {
    	        							montant.setEnabled(true);
    	        						}
    	        						calcul();
    	        			}});
     
    	        			view.setOnClickListener(new OnClickListener() {
    	        				public void onClick(View v) {
    	        					Intent intent = null;
     
    	        					intent = new Intent(MoreDetails.this, MoreDetails.class);
    	        					intent.putExtra("FAB_ID", v.getId());
    	        					startActivity(intent);
    	        				}
    	        			});
    	        			tab1.addView(view);
    	        			faMap.put(Cursor.getLong(Cursor.getColumnIndex(Const.COL_ID)), view);
    	        			Fab fab = new Fab();						fab.setMontant(Cursor.getDouble(Cursor.getColumnIndex(Const.COL_MONTANT)));
    												fabs.add(fab);
    	        		} while (Cursor.moveToNext());
    	        	}  	
    	        }
     
    	    }

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo