Ahmet Yilmaz
- Forum-Beiträge: 6
09.08.2012, 20:33:46 via Website
09.08.2012 20:33:46 via Website
Hallo!
Ich bin ein Anfänger in Sachen Java und da ich die Sprache eh später im Studium lerne, wollte ich einfach mal etwas ausprobieren. Also, vor 2 Jahren, haben wir in der Schule als Projekt Hangman programmiert, allerdings in Delphi. Dort gab es ja die schönen Arrays. Allerdings komme ich mit genau denen bei Java nicht klar. Man konnte bei Delphi, bei einem String einfach mit [i]String auf die i'te Stelle im String zugreifen und dann auch verändern. Bei Java verstehe ich das nicht ganz. Mit der Method: charAt(i) gehts nicht, kann also nicht die Stelle verändern. Desweiteren, denke ich, dass der Fehler irgendwo bei meinem String Array liegt. Denn als Fehler bei logcat bekomme ich: java.lang.ArrayIndexOutOfBoundsException.
Ich hoffe ihr könnt mir irgendwie helfen, die App stürzt immer bei der Abfrage ab. Hier mal der Quellcode:
[code]
package hello.android.com;
import android.app.Activity;
import android.os.Bundle;
import java.lang.reflect.Array;
import java.math.*;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;;
public class HelloAndroidActivity extends Activity {
/** Called when the activity is first created. */
private CharSequence x = "";
private CharSequence y="";
private String losung;
private int n= 10;
String wort[];
private int treffer;
private int versuche;
Button eingabe, abfrage;
TextView editText1, editText2, anzeige, treffer_anzeige;
public void onCreate(Bundle b) {
super.onCreate(b);
setContentView(R.layout.main);
eingabe = (Button) findViewById(R.id.button1);
editText1 = (TextView) findViewById(R.id.editText1);
abfrage = (Button) findViewById(R.id.button2);
editText2 = (TextView) findViewById(R.id.editText2);
anzeige = (TextView) findViewById(R.id.textView1);
TextView treffer_anzeige = (TextView) findViewById(R.id.textView2);
eingabe.setOnClickListener(buttonclick);
abfrage.setOnClickListener(buttonclick);}
View.OnClickListener buttonclick= new View.OnClickListener() {
public void onClick(View v) {
if (v == eingabe){
x= editText1.getText();
editText1.setVisibility(View.GONE);
eingabe.setVisibility(View.GONE);
abfrage.setVisibility(View.VISIBLE);
editText2.setVisibility(View.VISIBLE);
anzeige.setVisibility(View.VISIBLE);
n=x.length();
String wort[]= new String[n];
for(int i=0; i<n; i++){
wort[i]="_ ";
}
anzeige.setText(String.valueOf(wort));
}
else{
y= editText2.getText();
for(int i =0; i<n; i++){
if (y.charAt(0)== x.charAt(i)){
wort[i*2-1]=String.valueOf(y);
anzeige.setText(String.valueOf(wort));
treffer= treffer+1;
}
}
if (treffer==0){
versuche= versuche-1;
treffer_anzeige.setText("Der Buchstabe "+y+" ist nicht im Wort enthalten");
}
else{
treffer_anzeige.setText("Der Buchstabe " +y+" ist "+ treffer+" mal enthalten");}
}
}
};
}[/code]
Ich bin ein Anfänger in Sachen Java und da ich die Sprache eh später im Studium lerne, wollte ich einfach mal etwas ausprobieren. Also, vor 2 Jahren, haben wir in der Schule als Projekt Hangman programmiert, allerdings in Delphi. Dort gab es ja die schönen Arrays. Allerdings komme ich mit genau denen bei Java nicht klar. Man konnte bei Delphi, bei einem String einfach mit [i]String auf die i'te Stelle im String zugreifen und dann auch verändern. Bei Java verstehe ich das nicht ganz. Mit der Method: charAt(i) gehts nicht, kann also nicht die Stelle verändern. Desweiteren, denke ich, dass der Fehler irgendwo bei meinem String Array liegt. Denn als Fehler bei logcat bekomme ich: java.lang.ArrayIndexOutOfBoundsException.
Ich hoffe ihr könnt mir irgendwie helfen, die App stürzt immer bei der Abfrage ab. Hier mal der Quellcode:
[code]
package hello.android.com;
import android.app.Activity;
import android.os.Bundle;
import java.lang.reflect.Array;
import java.math.*;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;;
public class HelloAndroidActivity extends Activity {
/** Called when the activity is first created. */
private CharSequence x = "";
private CharSequence y="";
private String losung;
private int n= 10;
String wort[];
private int treffer;
private int versuche;
Button eingabe, abfrage;
TextView editText1, editText2, anzeige, treffer_anzeige;
public void onCreate(Bundle b) {
super.onCreate(b);
setContentView(R.layout.main);
eingabe = (Button) findViewById(R.id.button1);
editText1 = (TextView) findViewById(R.id.editText1);
abfrage = (Button) findViewById(R.id.button2);
editText2 = (TextView) findViewById(R.id.editText2);
anzeige = (TextView) findViewById(R.id.textView1);
TextView treffer_anzeige = (TextView) findViewById(R.id.textView2);
eingabe.setOnClickListener(buttonclick);
abfrage.setOnClickListener(buttonclick);}
View.OnClickListener buttonclick= new View.OnClickListener() {
public void onClick(View v) {
if (v == eingabe){
x= editText1.getText();
editText1.setVisibility(View.GONE);
eingabe.setVisibility(View.GONE);
abfrage.setVisibility(View.VISIBLE);
editText2.setVisibility(View.VISIBLE);
anzeige.setVisibility(View.VISIBLE);
n=x.length();
String wort[]= new String[n];
for(int i=0; i<n; i++){
wort[i]="_ ";
}
anzeige.setText(String.valueOf(wort));
}
else{
y= editText2.getText();
for(int i =0; i<n; i++){
if (y.charAt(0)== x.charAt(i)){
wort[i*2-1]=String.valueOf(y);
anzeige.setText(String.valueOf(wort));
treffer= treffer+1;
}
}
if (treffer==0){
versuche= versuche-1;
treffer_anzeige.setText("Der Buchstabe "+y+" ist nicht im Wort enthalten");
}
else{
treffer_anzeige.setText("Der Buchstabe " +y+" ist "+ treffer+" mal enthalten");}
}
}
};
}[/code]
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.