Donc, je suis un newb complet, et je suis actuellement en train de faire une intro à cours de programmation mobile dans lequel nous utilisons Android (j'ai une certaine expérience avec Java). J'essaie de faire une affectation simple qui affiche un champ de texte et une image, et en entrant le "mot de passe" correct et en appuyant sur Entrée, l'image change.Changer l'image sur le bon mot de passe
Devrait être si simple! Mais j'ai vraiment du mal avec ça et je n'arrive pas à comprendre ce que je fais de mal, même après avoir fait pas mal de recherches (je suppose que c'est quelque chose de super évident et que ça me manque).
Voici mon code:
package CS285.Assignment1;
import android.app.Activity;
import android.os.Bundle;
import android.widget.EditText;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.widget.ImageView;
public class DisplayImage extends Activity
implements OnKeyListener{
private EditText enteredText;
private String pass = "monkey";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
enteredText = (EditText)findViewById(R.id.passField);
enteredText.setOnKeyListener(this);
}
public boolean onKey(View v, int keyCode, KeyEvent event) {
// If the event is a key-down event on the "enter" button
if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
(keyCode == KeyEvent.KEYCODE_ENTER)){
// Perform action on key press
switchImage();
return true;
}
return false;
}
public void switchImage(){
if(enteredText.getText().toString() == pass){
ImageView imgView = (ImageView)findViewById(R.id.Image);
imgView.setImageResource(R.drawable.marmoset);
}
}
}
et mon main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView android:id="@+id/textPrompt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ff993300"
android:text="Please enter password to see my real picture:"
>
</TextView>
<EditText android:id="@+id/passField"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
</EditText>
<ImageView
android:id="@+id/Image"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:adjustViewBounds="true"
android:src="@drawable/airplane"
/>
</LinearLayout>
Je pensais au début que je n'extrais correctement la chaîne de « enteredText » de sorte que la comparaison avec la "mot de passe" ne se passait pas correctement, mais j'ai depuis essayé juste d'imprimer le texte entré et cela fonctionne très bien.
Totalement frustré - Toute aide serait grandement appréciée!
Daniel
Merci beaucoup, beaucoup! J'espère qu'un jour je serai capable de le payer pour un autre programmeur capricieux ...! – malfunction
Si cela a fonctionné pour vous s'il vous plaît appuyez sur la case à cocher à gauche de la réponse :) – I82Much
fait. est-ce que je t'ai bousculé jusqu'à 2 500? – malfunction