Dialog anzeigen wenn auf Button gedrückt wird.

Lucaaa

Bekanntes Mitglied
Hallo!
Ich habe eine App (siehe 2x Auf Zurücktaste um App zu schließen) Jetzt möchte ich das sich ein Dialog öffnet, wenn man auf einen Button in der ActionBar klickt (Button funktioniert auch) allerdings wird der Dialog nicht angezeigt.

Java:
package com.luca.java.android.androlamp;

import com.example.androlamp.R;

import android.app.Activity;
import android.app.Dialog;
import android.content.pm.PackageManager;

import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.os.Handler;
import android.view.KeyEvent;
import android.view.MenuInflater;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.CompoundButton;
import android.widget.Switch;
import android.widget.Toast;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
   
public class MainActivity extends Activity {

    Switch s1;
    android.hardware.Camera cam; 
    Parameters param; 
    boolean licht;
   
    boolean pressedBackKey = false;
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
       
    s1 = (Switch) findViewById(R.id.switch1);
    s1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
       
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
           
            if(isChecked == true) {
                if(getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) {
                    if(cam == null) {
                        cam = android.hardware.Camera.open();
                    }
                   
                    param = cam.getParameters();
                    param.setFlashMode(Parameters.FLASH_MODE_TORCH);
                    cam.setParameters(param);
                    cam.startPreview();
                   
                    licht = true;
                   
                } else {
                    Toast.makeText(getApplicationContext(), "your cellphone do not have a flash!", Toast.LENGTH_SHORT).show();
                }
            }
            if(isChecked == false) {
                lichtaus();
            }
           
        }
        });
    }


public void lichtaus() {
    if(licht == false) {
        cam = android.hardware.Camera.open();
    }
   
    param = cam.getParameters();
    param.setFlashMode(Parameters.FLASH_MODE_OFF);
    cam.setParameters(param);
    cam.stopPreview();
   
    licht = false;
   
   
   
}


@Override
protected void onPause() {
    if (licht == true) {
    lichtaus();
    cam.release();
}
    super.onPause();
}

    @Override
    protected void onResume() {
        s1.setChecked(false);
        super.onResume();
    }


    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK )    {
            if (pressedBackKey == false) {
                pressedBackKey = true; 
                Toast.makeText(getApplicationContext(), "Zurücktaste 2x drücken zum schließen", Toast.LENGTH_SHORT).show();
               
                new Handler().postDelayed(new Runnable() {
                   
                    @Override
                    public void run() {
                        pressedBackKey = false;
                    }
                } , 3000); 
            } else if (pressedBackKey == true) {
                onBackPressed();
            }
}
        return true;
    }
   
    // Menü in der ActionBar
   
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main_activity_menu, menu);
        return true;
    }
   
    @Override
    public boolean onOptionsItemSelected (MenuItem item) {
        int id = item.getItemId();
            if (id == R.id.about_the_app) {
                Toast.makeText(getApplicationContext(), "Test erfolgreich", Toast.LENGTH_SHORT).show();
                final Dialog dig1 = new Dialog(MainActivity.this);
                dig1.setContentView(R.layout.dialog_about_the_app);
                dig1.setTitle("über AndroLamp");
                return true;
            }
            return super.onOptionsItemSelected(item);
    }
   
       
       
}
 

Lucaaa

Bekanntes Mitglied
Okay. Jetz hav ich das Problem das ich einen Text im Dialog anzeigen will. (nur eine Zeile oder max 2) Habe das Jetz mit einem Nichteditirbaren Textfeld gemacht. (hab auch schon mal irgendwas von
Java:
setMassege()
gelesen, funktioniert aber nicht. jedenfalls stürzt die App immer ab wenn ich versuche den Dialog mit dem Textfeld anzuzeigen.
Hier der Code
Java:
package com.luca.java.android.androlamp;

import com.example.androlamp.R;

import android.app.Activity;
import android.app.Dialog;
import android.content.pm.PackageManager;

import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.os.Handler;
import android.view.KeyEvent;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.Switch;
import android.widget.Toast;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
   
public class MainActivity extends Activity {

    Switch s1;
    EditText editText1;
    android.hardware.Camera cam; 
    Parameters param; 
    boolean licht;
   
    boolean pressedBackKey = false;
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
       
    s1 = (Switch) findViewById(R.id.switch1);
    s1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
       
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
           
            if(isChecked == true) {
                if(getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) {
                    if(cam == null) {
                        cam = android.hardware.Camera.open();
                    }
                   
                    param = cam.getParameters();
                    param.setFlashMode(Parameters.FLASH_MODE_TORCH);
                    cam.setParameters(param);
                    cam.startPreview();
                   
                    licht = true;
                   
                } else {
                    Toast.makeText(getApplicationContext(), "your cellphone do not have a flash!", Toast.LENGTH_SHORT).show();
                }
            }
            if(isChecked == false) {
                lichtaus();
            }
           
        }
        });
    }


public void lichtaus() {
    if(licht == false) {
        cam = android.hardware.Camera.open();
    }
   
    param = cam.getParameters();
    param.setFlashMode(Parameters.FLASH_MODE_OFF);
    cam.setParameters(param);
    cam.stopPreview();
   
    licht = false;
   
   
   
}


@Override
protected void onPause() {
    if (licht == true) {
    lichtaus();
    cam.release();
}
    super.onPause();
}

    @Override
    protected void onResume() {
        s1.setChecked(false);
        super.onResume();
    }


    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK )    {
            if (pressedBackKey == false) {
                pressedBackKey = true; 
                Toast.makeText(getApplicationContext(), "Zurücktaste 2x drücken zum schließen", Toast.LENGTH_SHORT).show();
               
                new Handler().postDelayed(new Runnable() {
                   
                    @Override
                    public void run() {
                        pressedBackKey = false;
                    }
                } , 3000); 
            } else if (pressedBackKey == true) {
                onBackPressed();
            }
}
        return true;
    }
   
    // Menü in der ActionBar
   
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main_activity_menu, menu);
        return true;
    }
   
    @Override
    public boolean onOptionsItemSelected (MenuItem item) {
        int id = item.getItemId();
            if (id == R.id.about_the_app) {
                final Dialog dig1 = new Dialog(MainActivity.this);
                dig1.setContentView(R.layout.dialog_about_the_app);
                dig1.setTitle(R.string.dialog_about_the_app_headline);
                dig1.show();
               
                editText1 = (EditText) findViewById(R.id.editText1);
                editText1.setText(R.string.dialog_about_the_app_version);
                return true;
            }
            return super.onOptionsItemSelected(item);
    }
   
       
       
}
 

Robat

Top Contributor
jedenfalls stürzt die App immer ab wenn ich versuche den Dialog mit dem Textfeld anzuzeigen.

Leider ist meine Zauberkugel kaputt - kannst du vielleicht den Stacktrace posten? :)

Würde mal vermuten dass der Error kommt weil du dig1.show() nicht ganz am Ende aufrufst. Schieb das mal vor return true;


Was auch sein könnte ist dass er die ID vom EditText bzw des Strings nicht findet. Aber mit einem Stacktrace kann man da mehr drüber sagen :)

PS: Die setMessage() gibt es afaik nur beim AlertDialog.Builder :)

Gruß Robert
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Android Dialog verstecken, statt zu schliessen Android & Cross-Platform Mobile Apps 7
J Input Dialog - ist das so richtig ? Android & Cross-Platform Mobile Apps 1
L Leerer Dialog Android & Cross-Platform Mobile Apps 0
B Android Alert Dialog mit sound oder Android & Cross-Platform Mobile Apps 1
J Dialog in Fragment Android & Cross-Platform Mobile Apps 6
B Senden via Dialog? Android & Cross-Platform Mobile Apps 6
K Android Activity for result aus Dialog Android & Cross-Platform Mobile Apps 1
N Android Retain Dialog verschwindet beim drehen Android & Cross-Platform Mobile Apps 4
T Android - Toast Dialog oder was anders? Android & Cross-Platform Mobile Apps 3
A Android Probleme mit Dialog Android & Cross-Platform Mobile Apps 4
A Android Dialog wird nicht sofort angezeigt Android & Cross-Platform Mobile Apps 12
L Custom Dialog Button event Android & Cross-Platform Mobile Apps 2
I modaler Dialog Android & Cross-Platform Mobile Apps 2
W Bilder und Videos anzeigen lassen mit Zoom- und Loop-Funktion Android & Cross-Platform Mobile Apps 5
R Android Daten speichern und anzeigen Android & Cross-Platform Mobile Apps 7
W Android Kann keine ListView mehr in der MainActivtiy anzeigen, obwohl noch sehr viel Platz frei ist Android & Cross-Platform Mobile Apps 1
ruutaiokwu Android In einem Android-“Spinner”-Element GLEICHZEITIG Bild (links) UND Text (rechts) anzeigen Android & Cross-Platform Mobile Apps 0
J ImageView: Bilder in niedriger Grafik anzeigen lassen Android & Cross-Platform Mobile Apps 2
M ImageButton: Bild ausblenden und Text anzeigen Android & Cross-Platform Mobile Apps 2
E Android Naturkatastrophen auf App anzeigen Android & Cross-Platform Mobile Apps 1
C Android Bei Text "Popup" anzeigen Android & Cross-Platform Mobile Apps 2
B Android App debugen auf Handy, Handy-Desktop auf PC anzeigen Android & Cross-Platform Mobile Apps 1
J (Android) Bild(er) anzeigen lassen Android & Cross-Platform Mobile Apps 0
B Android In einem View der ersten Activity zweite anzeigen Android & Cross-Platform Mobile Apps 2
V PopUp in gleicher View anzeigen Android & Cross-Platform Mobile Apps 1
J Verschiedene xml layouts in relativlayout anzeigen lassen Android & Cross-Platform Mobile Apps 1
P Android Kontakt anzeigen lassen Android & Cross-Platform Mobile Apps 1
M Anzeigen der Daten dauert zu lange - Progressdialog? Android & Cross-Platform Mobile Apps 5
E Android Zwei Canvase übereinander legen und anzeigen Android & Cross-Platform Mobile Apps 7
G canvas in view anzeigen Android & Cross-Platform Mobile Apps 10
G Bilder als "Video" anzeigen Android & Cross-Platform Mobile Apps 3
S Android Fehler beim Anzeigen meines Apps auf Galaxy Tab Android & Cross-Platform Mobile Apps 4
J Schlicht und einfach Bild anzeigen ;) Android & Cross-Platform Mobile Apps 5
L HTML Seite anzeigen in Handy-Applikation Android & Cross-Platform Mobile Apps 5
P Bild anzeigen Android & Cross-Platform Mobile Apps 3
M Bilder nacheinander anzeigen Android & Cross-Platform Mobile Apps 6
I Android SharedPreferences wenn App auf externem Speicher klappt nicht Android & Cross-Platform Mobile Apps 0
J Notification wird nicht angezeigt wenn App nicht offen ist. Android & Cross-Platform Mobile Apps 6
J Impressumspflicht für App, wenn ich kein Unternehmer bin? Android & Cross-Platform Mobile Apps 13
J Android App stürzt ab wenn neue activity gestartet Android & Cross-Platform Mobile Apps 6
X Was passiert wenn man die App (gewaltsam) schließt Android & Cross-Platform Mobile Apps 2
K Zeitstopp-App, immer dann aktiv, wenn Handy an - wie vorgehen? Android & Cross-Platform Mobile Apps 4
B Alle Daten gehen verloren, wenn die Displaysperre aktiviert wird? Android & Cross-Platform Mobile Apps 21

Ähnliche Java Themen

Neue Themen


Oben