android.widget de.Le bouton ne peut pas être lancé pour android.widget de.EditText
Le développement de mon premier Android application calculatrice, j'ai réussi à mettre à jour un TextView dans une nouvelle activité, en passant par la réponse par l'intermédiaire d'une intention, mais cela exige de l'utilisateur de frapper en Arrière pour effectuer un autre calcul. Je suis en train de faire la doCalculation bouton de mise à jour d'un simple TextView dans le MainActivity et l'obtention de l'erreur:
06-22 11:08:17.318: E/AndroidRuntime(31328): Causée par: java.lang.ClassCastException: android.widget de.Le bouton ne peut pas être lancé pour android.widget de.EditText
Voici mon code:
/** Called when the user clicks the Calculate! button */
public void doCalculation(View view) {
//Do something in response to button
int answerInt;
String answer;
EditText numberOne = (EditText) findViewById(R.id.number1);
EditText numberTwo = (EditText) findViewById(R.id.number2);
int numberOnee = Integer.parseInt(numberOne.getText().toString());
int numberTwoo = Integer.parseInt(numberTwo.getText().toString());
answerInt = numberOnee * numberTwoo;
answer = Integer.toString(answerInt);
TextView homeAnswerView = (TextView) findViewById(R.id.homeAnswerView);
homeAnswerView.setTextSize(40);
homeAnswerView.setText(answer);
}
Pour référence, voici le code qui a travaillé avec succès le lancement d'une nouvelle activité:
//Called when the user clicks the Calculate! button
public void doCalculation(View view) {
//Do something in response to button
int answerInt;
String answer;
Intent intent = new Intent(this, DisplayCalculationActivity.class);
EditText numberOne = (EditText) findViewById(R.id.number1);
EditText numberTwo = (EditText) findViewById(R.id.number2);
int numberOnee = Integer.parseInt(numberOne.getText().toString());
int numberTwoo = Integer.parseInt(numberTwo.getText().toString());
answerInt = numberOnee * numberTwoo;
answer = Integer.toString(answerInt);
intent.putExtra(EXTRA_MESSAGE, answer);
startActivity(intent);
}
Mise à JOUR, le fichier XML pour référence:
<EditText
android:id="@+id/number2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView3"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp"
android:ems="10"
android:inputType="number" />
<EditText
android:id="@+id/number1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:ems="10"
android:inputType="number"
android:singleLine="true" />
<Button
android:id="@+id/calculateBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/number2"
android:layout_alignRight="@+id/number2"
android:layout_below="@+id/number2"
android:layout_marginTop="14dp"
android:onClick="doCalculation"
android:text="Calculate!" />
Merci pour votre aide,
-Michael
Vous devez vous connecter pour publier un commentaire.
Il semble que ce soit R. id.nombre1 ou R. id.nombre2 est un Bouton. Vérifiez votre XML et assurez-vous que c'est un EditText.
Edit: réponse Originale à cette question n'a pas fonctionné, mais le nettoyage, le projet a résolu le problème.
EditText R.id
m'amène à laEditText
. La pensée ce n'est certainement pas une IDE problème de cache. Ce que j'ai fait faire c'est changer le LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_width="match_parent" android:layout_height="match_parent" Pour une raison quelconque, il fixe le problème (j'ai vécu toute cette mise en page enveloppé dans quelque chose d'autre que je viens de supprimé).J'ai juste eu ce problème. Il semble que le xml fichier de mise en page n'est pas compilé correctement. Ou plutôt il n'est pas inclus dans la liste des fichiers modifiés pour être compilé.
j'ai eu le même cas, mais j'ai trouvé qu'il y a deux textviews avec le même id dans différentes activités, donc j'ai changé l'un d'eux et le programme s'est déroulé de façon claire afin de vérifier les identifiants de tous vos edittext et des boutons et modifier le samilier même si elles l'étaient dans d'autres activités et je pense qu'il fonctionnera avec tous les problèmes
J'ai suivi les étapes de la réponse (nettoyé et fait en sorte que c'est l'id) et a remarqué que le fait d'aller à la source de mon
EditText R.id
m'amène à laEditText
. La pensée ce n'est certainement pas une IDE problème de cache.Ce que j'ai fait faire c'est changer le LinearLayout
à
Pour une raison quelconque, il fixe le problème (j'ai vécu toute cette mise en page enveloppé dans quelque chose d'autre que je viens de supprimé).