Customer Dialog

  • 11 Antworten
  • Letztes Antwortdatum
O

otimum

Neues Mitglied
0
Guten Tag alle zusammen, ich hoffe ihr könnt mir weiter helfen.
Ich habe ein Customer Dialog, aus diesen Dialog soll eine Activity gestartet werden, mit einen Button.
Ich habe einiges Probiert und im inet gelesen, doch irgendwie Funktioniert das nicht!
Habt ihr einen Tipp oder eine Anleitung (am liebsten in deutsch) für mich?


Danke
 
^^ wo liegt denn genau der Fehler? Vielleicht nen LogCat text?

ich kann das bei mir eigentlich ohne Probleme machen.

bzw wie hast du es gemacht? Benutzt du die Activity die du beim CustomeDialog übergeben bekommen hast?


Code:
public class CustomDialog extends Dialog implements OnClickListener { 
  Button okButton, cancelButton; 
  Activity mActivity; 
 
  public CustomDialog(Activity activity) {       
    super(activity); 
    mActivity = activity; 
    setContentView(R.layout.custom_dialog); 
    okButton = (Button) findViewById(R.id.button_ok); 
    okButton.setOnClickListener(this); 
    cancelButton = (Button) findViewById(R.id.button_cancel); 
    cancelButton.setOnClickListener(this); 
  } 
 
  @Override 
  public void onClick(View v) {        
    if (v == cancelButton) 
        dismiss(); 
    else { 
        Intent i = new Intent(mActivity, ItemSelection.class); 
        mActivity.startActivity(i); 
    } 
  } 
}
 
  • Danke
Reaktionen: otimum
Danke für die schnelle Antwort.

Ich werde das mal ausprobieren, wenn ich da noch Probleme haben werde, melde ich mich noch mal :)
 
Irgendwie will das nicht so richtig Funktionieren.

das ist die Dialog klasse
Code:
public class Diaalog extends Dialog implements android.view.View.OnClickListener {
    Button okButton, cancelButton; 
      Activity mActivity; 
     
      public Diaalog(Activity activity) {       
        super(activity); 
        mActivity = activity; 
        setContentView(R.layout.custom_dialog); 
        okButton = (Button) findViewById(R.id.ok); 
        okButton.setOnClickListener(this); 
        cancelButton = (Button) findViewById(R.id.cancel); 
        cancelButton.setOnClickListener(this); 
      } 
     
      public void onClick(View v) {        
        if (v == cancelButton) 
            dismiss(); 
        else { 
            Intent i = new Intent(Intent.ACTION_VIEW, 
                    Uri.parse("google.navigation:50.78965,6.78965")); 
            mActivity.startActivity(i); 
        } 
      } 
  }

Und hier soll der dialog gestartet werden, wenn ich auf einen button drücke.
Code:
public void naviStart(final View view){
        startActivity(new Intent(this, Diaalog.class));
    }
 
die meisten Dialoge werden doch mit "show()" aufgerufen, doch leider seh ich bei dir kein show() ...

Code:
public void naviStart(final View view){
       Dialog customDialog = new Diaalog(getActivity())
       customDialog.show();
}

versuch das mal bitte ...
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: otimum
danke,

Sorry wenn ich so dumme Fragen stelle, bin zimmlich neue was Android programmirung angeht,
aber kannst du mir erklären, was es mit den getActivity auf sich hat.
 
du hast einen Konstruktor erstellt in dem du als Übergabeparameter eine Variable vom Typ Activity bestimmt hast, deswegen dieses getActivity. die Methode gibt dir die aktuelle Activity ...

was mich immer viel mehr interessiert ob es nun funktioniert. wenn nicht, steht was im LogCat?
 
Denk auch an das Manifest :)
 
muss man die Dialog Klasse dort auch eintragen?

Also ich frag darum weil ich meine Dialog meist bzw bis jetzt immer als innerclass gemacht hab.
 
nein, der dialog wird instantiiert und dann mit .show() angezeigt, dafür brauchst du keinen manifest-eintrag. ich denke soma-web meinte den manifest-eintrag für die activity, die vom dialog gestartet werden soll.
 
Ich Danke eure, für eure Hilfe, Interesse und den vielen Beiträgen.:thumbsup:

Ich habe das in einen neuen Projekt ausprobiert und es funktioniert.
Jetzt muss ich das nur noch in das bestehende Projekt übertragen. Wenn ich das dann geschafft habe, dann bin ich überaus glücklich :)
 
Hi Forum,
ich habe das ganze wie folgt versucht zu lösen, jedoch kommt bei mir nur ein ausgegrauter Bildschirm. Wenn ich das ganze Spiel aber in einer Klasse spiele, dann funktioniert es. Ich denke es liegt an dem Builder(this)

Code:
public class MyDialog  extends AlertDialog 
{

	public MyDialog(Context context,String title, String message) {
		super(context);
		AlertDialog alertDialog = new AlertDialog.Builder(context).create();//vermutlich ist hier bei context der Fehler
		alertDialog.setTitle(title);
		alertDialog.setMessage(message);
		alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
			   public void onClick(DialogInterface dialog, int which) {
			      
			   }
			});
	}

}

Hier die Klasse die den Spaß jetzt aufruft:
Code:
public class MyActivity extends Activity {

	private Button zusatzinfo;
	private Button back;
	
	
	 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        final AlertDialog alertDialog = new MyDialog(this, "Title", "Message"); //das this muss normalerweise in die AlertDialog.Builder(context).create(); anstelle des contexts, nur wie mache ich das
		
        setContentView(R.layout.schaderreger_layout);
        zusatzinfo = (Button) findViewById(R.id.anzahl);
		zusatzinfo.setText(R.string.anzahl);
		zusatzinfo.setOnClickListener(new View.OnClickListener()
		{
	    	public void onClick(View v)
	    	{
	    		alertDialog.show();
	    	}
		});
        
        back = (Button) findViewById(R.id.back);
		back.setText(R.string.back);
		
		back.setOnClickListener(new View.OnClickListener()
		{
	    	public void onClick(View v)
	    	{
	    		Intent in = new Intent(myActivity.this, MainActivity.class);
	    		startActivity(in);
	    		finish();
	    	}
		});
        
    }
}

vielen Dank für eure Hilfe.
mit freundlichem Gruß
der Balli
 
Zurück
Oben Unten