Programm Stürzt ab, was ist falsch am Code?

  • Antworten:4
Markus Schmidt
  • Forum-Beiträge: 7

08.10.2017, 14:58:33 via Website

Frage - warum stürtzt meine App immer wegen diesem Aufruf ab:

Hilfe wäre sehr nett, ich bedanke mich schonmal im Vorraus, aufgerufen wird die Aktiviät durch:

Und hier der Code zur Klasse und die XML (erste Zeile gehört einer UnterKlasse, die die aktivität starten soll:

startActivity(new Intent(this, SchriftartErneuern.class));

public class SchriftartErneuern extends Activity implements AdapterView.OnItemSelectedListener, View.OnClickListener{

private int currentForm;
private int currentGroesse;
private Button b;
private TextView schreiben;
private Typeface tf;
private Spinner groesse;
private Spinner form;
private Spinner art;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_schriftart_aendern);
}

public boolean onCreateOptionsMenu(Menu menu){

    getMenuInflater().inflate(R.menu.menu_scrolling, menu);

    schreiben = (TextView) findViewById(R.id.textView3); //erzeuge textview

    tf = Typeface.SANS_SERIF; // setze tf zur schriftart

    schreiben.setTypeface(tf, Typeface.BOLD); //setzte textview schriftart tf
    schreiben.setTextSize(23); // setzt größe



    groesse = (Spinner) findViewById(R.id.spinner2);
    ArrayAdapter adapterGroesse = ArrayAdapter.createFromResource(this, R.array.groesse, android.R.layout.simple_spinner_dropdown_item);
    adapterGroesse.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    groesse.setAdapter(adapterGroesse);
    groesse.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3){
            switch(arg2){
                case 0: schreiben.setTextSize(15); currentGroesse = 15; break;
                case 1: schreiben.setTextSize(20); currentGroesse = 20; break;
                case 2: schreiben.setTextSize(25); currentGroesse = 25; break;
                case 3: schreiben.setTextSize(30); currentGroesse = 30; break;
                case 4: schreiben.setTextSize(35); currentGroesse = 35; break;
                case 5: schreiben.setTextSize(40); currentGroesse = 40; break;
                case 6: schreiben.setTextSize(45); currentGroesse = 45; break;
            }
        }

        public void onNothingSelected(AdapterView<?> parent) {

        }


    }); // erzeugt Spinner, der Probleme macht!



    form = (Spinner) findViewById(R.id.spinner);
    ArrayAdapter adapterForm = ArrayAdapter.createFromResource(this, R.array.form, android.R.layout.simple_spinner_dropdown_item);
    adapterForm.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    form.setAdapter(adapterForm);
    form.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3){
            switch(arg2){
                case 0 : schreiben.setTypeface(tf, Typeface.NORMAL); currentForm = Typeface.NORMAL; break;
                case 1 : schreiben.setTypeface(tf, Typeface.BOLD); currentForm = Typeface.BOLD; break;
                case 2 : schreiben.setTypeface(tf, Typeface.ITALIC); currentForm = Typeface.ITALIC; break;
                case 3 : schreiben.setTypeface(tf, Typeface.BOLD_ITALIC); currentForm = Typeface.BOLD_ITALIC; break;
            }
        }

        public void onNothingSelected(AdapterView<?> parent) {

        }


    }); //erzeugt Spinner probleme



    art = (Spinner) findViewById(R.id.spinner3);
    ArrayAdapter adapterArt = ArrayAdapter.createFromResource(this, R.array.art, android.R.layout.simple_spinner_dropdown_item);
    adapterArt.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    art.setAdapter(adapterArt);
    art.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3){
            switch(arg2){
                case 0 : tf = Typeface.SANS_SERIF; schreiben.setTypeface(tf, currentForm); break;
                case 1 : tf = Typeface.SERIF; schreiben.setTypeface(tf, currentForm); break;
                case 2 : tf = Typeface.MONOSPACE; schreiben.setTypeface(tf, currentForm); break;
            }
        }

        public void onNothingSelected(AdapterView<?> parent) {

        }


    }); //erzeugt spinner probleme



    b = (Button) findViewById(R.id.button6);
    b.setOnClickListener(this);

    currentForm = Typeface.NORMAL;
    currentGroesse = 20;


     return true;


}

public void onClick(View v){


        Seite.seitenText.setTextSize(currentGroesse);
        Seite.seitenText.setTypeface(tf, currentForm); //setzt seite den Seitentext,



}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

    }

@Override
public void onNothingSelected(AdapterView<?> parent) {

}

}

— geändert am 08.10.2017, 16:02:53 durch Moderator

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.958

08.10.2017, 16:01:46 via App

Hallo Markus,

herzlich willkommen bei uns im Forum (*)

dein Titel war nicht ganz aussagekräftig, daher haben ich diesen etwas angepasst.

Bitte versuche das nächste Mal, einen aussagekräftigeren Threadtitel zu wählen - lies dir dazu diesen Thread durch.
Ich habe deinen Thread in den passenden Bereich verschoben.


Dein komplette View Initialisierung ist falsch!
Das muss in der onCreate passieren, weitere Fehler wirst du dann bemerken.

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

swa00Markus Schmidt

Antworten
Markus Schmidt
  • Forum-Beiträge: 7

08.10.2017, 19:00:49 via Website

Achso, dankeschön. Hast du zufällig eine Ahnung, warum meine Objekte wie zum Beispiel der Button einfach ganz oben links platziert werden,wenn ich die App auf einem externen Handy debugge, obwohl ich die wo anders an geordnet habe? Liegt das an meinem Handy also an der Modellnummer,oder an einem Layout was ich in den Code hätte schreiben müssen? Vielen Dank schonmal im vorraus und besonders für diese schnelle Antwort. Grüße Markus

Antworten
Markus Schmidt
  • Forum-Beiträge: 7

09.10.2017, 17:28:35 via Website

Hallo, ich komme direkt zur Sache, mein Programm stürzt ab, sobald ich mit einem Intent etwas über gebe. Als nichts übergeben wurde, lief das Programm sehr gut. Vielen Dank für die Hilfe im vorraus!
Hier die Code abschnitte:

public void onClick(View v){
Intent i = new Intent(this, Seite.class);
int currentGroesse = 15;
String currentText = "";
int currentForm = Typeface.BOLD;
Typeface currentArt = Typeface.SANS_SERIF;
i.putExtra("currentGroesse", currentGroesse);
i.putExtra("currentText", currentText);
i.putExtra("currentForm", currentForm);
i.putExtra("currentArt", (Serializable) currentArt);
startActivity(i);

}

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

    seitenText = (EditText) findViewById(R.id.editText3);

    int currentGroesse = getIntent().getIntExtra("currentGroesse", 15);
    String currentText = getIntent().getStringExtra("currentText");
    int currentForm = getIntent().getIntExtra("currentForm", Typeface.BOLD);
    Typeface tf = (Typeface) getIntent().getSerializableExtra("currentArt");

    seitenText.setText(currentText);
    seitenText.setTextSize(currentGroesse);
    seitenText.setTypeface(tf, currentForm);

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.958

09.10.2017, 17:40:50 via App

Hallo Markus,

habe deine Threads zusammengeführt.


Das this in deinem Intent ist nicht richtig, nimm stattdessen getBaseContext()

Und mal nen Tip, schau dir den LogCat an, wenn die App abstürzt.

— geändert am 09.10.2017, 17:41:50

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Roland Schumacherswa00Markus Schmidt

Antworten