2016-07-13 10 views
0

Ich habe eine sehr einfache Anwendung, und ich versuche, ein Kontrollkästchen in der Symbolleiste zu setzen. DieseBenutzerdefinierte Schaltflächen in der ToolBar reagieren nicht auf Aktionen. Toast wird nicht angezeigt

ist, wie mein xml aussieht:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="xxxxxxxx.xx.xx.HomeActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      android:padding="5dp" 
      app:popupTheme="@style/AppTheme.PopupOverlay"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="horizontal"> 
      <EditText 
       android:id="@+id/searchET" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="8" 
       android:background="@android:color/white"/> 

      <CheckBox 
       android:id="@+id/favorite_toggle" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="2" 
       /> 
      </LinearLayout> 
     </android.support.v7.widget.Toolbar> 


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

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

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|end" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@android:drawable/ic_dialog_email" /> 

</android.support.design.widget.CoordinatorLayout> 

In meinem MainActivity ich einen einfachen Hörer festgelegt haben:

favoriteBtn = (CheckBox) findViewById(R.id.favorite_toggle); 

favoriteBtn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) { 
       if(isChecked){ 
        Toast.makeText(HomeActivity.this, "changed", Toast.LENGTH_SHORT); 
        addFavorite(url); 
       }else{ 
        Toast.makeText(HomeActivity.this, "again changed", Toast.LENGTH_SHORT); 
        removeFavorite(url); 
       } 
      } 
     }); 

Wenn ich das Kontrollkästchen klicken, passiert nichts, ich die Checkbox schaltet aber nicht den Toast sehen. Ich sehe folgende Meldungen in logcat

D/ViewRootImpl: ViewPostImeInputStage processPointer 1

Kann mir jemand Richtung auf das, was falsch sein könnte?

Update: Ich denke, es ist nur die Toasts nicht angezeigt.

Antwort

0

Um toast anzuzeigen, müssen Sie method show verwenden. Also in deinem Code:

+0

ew .. ja ich war so sehr davon überzeugt, dass etwas nicht stimmte. Das habe ich verpasst. –

1

Sie müssen nach Ihrem Toast .show() Methode hinzufügen. So wäre es wie:

Toast.makeText(HomeActivity.this, "changed", Toast.LENGTH_SHORT).show(); 

Ohne diese Methode hat Ihre nur Toast Nachricht erstellt, aber System nicht sagen, es zu zeigen.