Customer Dialog

  • 11 Antworten
  • Neuester Beitrag
Diskutiere Customer Dialog im Android App Entwicklung im Bereich Betriebssysteme & Apps.
O

otimum

Neues Mitglied
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
 
M

Madlip

Gast
^^ 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); 
    } 
  } 
}
 
O

otimum

Neues Mitglied
Danke für die schnelle Antwort.

Ich werde das mal ausprobieren, wenn ich da noch Probleme haben werde, melde ich mich noch mal :)
 
O

otimum

Neues Mitglied
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));
    }
 
M

Madlip

Gast
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:
O

otimum

Neues Mitglied
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.
 
M

Madlip

Gast
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?
 
S

soma-web

App-Anbieter (kostenpfl.)
Denk auch an das Manifest :)
 
M

Madlip

Gast
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.
 
T

Tom299

Stammgast
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.
 
O

otimum

Neues Mitglied
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 :)
 
B

ballibum

Neues Mitglied
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
 
Ähnliche Themen - Customer Dialog Antworten Datum
4
2