2017-01-27 4 views
2

Ich arbeite an einem Android-Projekt, an dieser Stelle möchte ich diese 'fab' so haben, dass Onclick, bringt es ein Popup-Fenster mit einer Texteingabe. und zwei Knöpfe. Aber es bringt einen Fehler, den ich versucht habe zu beheben und schließlich dachte ich, ich kann hier Hilfe finden.Android AlertDialog Fehler während der Darstellung

Diese Linie hat einen Fehler:

AlertDialog.Builder builder = new AlertDialog.Builder(this); with this one too: final EditText input = new EditText(this);

private String m_Text = ""; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      AlertDialog.Builder builder = new AlertDialog.Builder(this); 
      builder.setTitle("QuickSearch:"); 
      //input initial 
      final EditText input = new EditText(this); 
      // 
      input.setInputType(InputType.TYPE_CLASS_TEXT); 
      builder.setView(input); 
      // Set of buttons to be displayed. 
      builder.setPositiveButton("Go", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        m_Text = input.getText().toString(); 
       } 
      }); 
      builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.cancel(); 
       } 
      }); 

      builder.show(); 


      //Search action here. 
      //Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
        // .setAction("Action", null).show(); 
     } 
    }); 
+2

Haben Sie AlertDialog.Builder versucht builder = new AlertDialog.Builder (yourActivity.this) sein sollte; –

+0

Laden Sie die Protokolle hoch? –

Antwort

0

Sie in jeder Zeittaste klicken neue Alertdialog Instanz erstellen .. ohne die Sicht

zu entfernen versuchen, diesen:

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    final AlertDialog alert = builder.create(); 


    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 


      builder.setTitle("QuickSearch:"); 
      //input initial 
      final EditText input = new EditText(MainActivity.this); 
      // 
      input.setInputType(InputType.TYPE_CLASS_TEXT); 
      builder.setView(input); 
      // Set of buttons to be displayed. 
      builder.setPositiveButton("Go", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        m_Text = input.getText().toString(); 
       } 
      }); 
      builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        alert.dismiss(); 
       } 
      }); 

      alert.show(); 


      //Search action here. 
      //Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
        // .setAction("Action", null).show(); 
     } 
    }); 
+0

@KE Keronei hat es funktioniert? – rafsanahmad007

+0

Ja, danke. es funktionierte. –

0

In Ihrem Code bezieht sich this auf diesen onClick nicht die context of that Activity.

Code wie diesen

AlertDialog.Builder builder = new AlertDialog.Builder(YourActivityName.this); 
final EditText input = new EditText(YourActivityName.this); 
Verwandte Themen