2016-12-20 7 views
1
public class Help extends AppCompatActivity { 

    ImageButton floatButton; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_help); 
     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 v) { 
        AlertDialog.Builder helpAlert = new AlertDialog.Builder(this); 
        helpAlert.setMessage("Send emails to - [email protected] - for more help!") 
          .setPositiveButton("Got It!", new DialogInterface.OnClickListener() { 
           @Override 
           public void onClick(DialogInterface dialog, int which) { 
            dialog.dismiss(); 
           } 
          }) 
          .setTitle("Extra Help") 
          .setIcon(R.drawable.ic_info_black_24dp) 
          .create(); 
        helpAlert.show(); 
      } 
     }); 
    } 
} 

Ich bleibe stecken und ich kann nicht die Floating-Action-Taste zu zeigen, was ich will es auch. Bitte helfen Sie!Ich bekomme immer einen Fehler und ich weiß nicht warum?

+0

Versuchen Sie, die Protokollablaufverfolgung zu posten, wenn Sie Fehler sehen und zeigen Sie Ihre XML-Datei auch –

+1

welchen Fehler Sie Kumpel bekommen? – Reena

+0

Der Fehler tritt bei AlertDialog.Builder auf helpAlert = new AlertDialog.Builder (this); es ist das (das), das eine rote Schnörkellinie darunter hat. – Callum

Antwort

1

Sie den Fehler bekommen, weil Sie schreiben:

AlertDialog.Builder helpAlert = new AlertDialog.Builder(this); 

innerhalb einer anonymen Klasse. Innerhalb einer anonymen Klasse fungiert this als die Referenz Ihrer anonymen Klasse (new View.OnClickListener), die die Activity (oder AppCompatActivity) nicht erweitert, so dass die obige Zeile Ihnen einen Fehler gibt.

Um die Fehler einfach Ihre obige Zeile ändern zu entfernen:

AlertDialog.Builder helpAlert = new AlertDialog.Builder(Help.this); 

Hier wie ich Help ist Ihr Klassennamen sehen können, die AppCompatActivity so wird dies nicht geben einen Fehler erweitert.

+0

Danke, dass du etwa 2 Stunden damit verbracht hast herauszufinden, was falsch war. Sehr dankbar!! – Callum

0

<android.support.design.widget.AppBarLayout 
    android:id="@+id/app_bar" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/app_bar_height" 
    android:fitsSystemWindows="true" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.design.widget.CollapsingToolbarLayout 
     android:id="@+id/toolbar_layout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true" 
     app:contentScrim="?attr/colorPrimary" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:layout_collapseMode="pin" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 

    </android.support.design.widget.CollapsingToolbarLayout> 
</android.support.design.widget.AppBarLayout> 

<include layout="@layout/content_help" /> 

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="@dimen/fab_margin" 
    app:layout_anchor="@id/app_bar" 
    app:layout_anchorGravity="bottom|end" 
    app:srcCompat="@android:drawable/ic_dialog_email" /> 

ist die XML-Datei. Ist die XML-Datei

+0

hey callum, du kannst deine Frage bearbeiten, um sie einzuschließen, anstatt sie als Antwort auf deine eigene Frage zu posten: P Sieht so aus, als ob du viele Dinge an einem Ort machst. Entfernen Sie das Ankermaterial und verwenden Sie regelmäßig Android: src in Ihrem FAB und sehen Sie, was passiert. Vielleicht möchten Sie auch auf dem FAB alignParentBottom = "true" ausrichten, nur damit Sie wissen, wohin es geht. Es könnte hinter etwas oder gar nicht erscheinen. Auch eine gute Möglichkeit, Ihre Ansicht in Zukunft zu überprüfen, ist, sie programmatisch zu finden (findViewById (R.id.fab)) und dann zu überprüfen, dass ihre Höhe und Breite nicht 0 sind. –

Verwandte Themen