2016-08-23 62 views
-3

我嘗試顯示小吃店,當活動開始,但不工作。錯誤在小吃店Android與此,getActivity等

final Snackbar snackbar = Snackbar.make(???, "test", Snackbar.LENGTH_INDEFINITE); 
      snackbar.setAction("dismiss", new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        snackbar.dismiss(); 
       } 
      }); 

      snackbar.show(); 
+0

logcat please ??? ??? – Rahul

+0

請把你的logcat –

+0

你必須提供任何視圖給小吃店,這是非空。 – SANAT

回答

0

全部工作演示

MainActivity

package pk.sohail.gallerytest.activity; 

import android.content.Context; 
import android.os.Bundle; 
import android.support.design.widget.CoordinatorLayout; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.ImageView; 

import pk.sohail.gallerytest.R; 

public class MainActivity extends AppCompatActivity { 

    Context context; 
    private CoordinatorLayout coordinatorLayout; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     context = this; 

     coordinatorLayout = (CoordinatorLayout) findViewById(R.id 
       .coordinatorLayout); 

     ImageView image = (ImageView) findViewById(R.id.myimage); 
     image.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(final View v) { 

       Snackbar snackbar = Snackbar 
         .make(coordinatorLayout, "Message is deleted", Snackbar.LENGTH_LONG) 
         .setAction("UNDO", new View.OnClickListener() { 
          @Override 
          public void onClick(View view) { 
           Snackbar snackbar1 = Snackbar.make(coordinatorLayout, "Message is restored!", Snackbar.LENGTH_SHORT); 
           snackbar1.show(); 
          } 
         }); 

       snackbar.show(); 
      } 
     }); 
    } 
} 

activity_main.xml中

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/coordinatorLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="@android:color/white"> 


     <ImageView 
      android:id="@+id/myimage" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:src="@mipmap/ic_launcher" /> 
    </RelativeLayout> 
</android.support.design.widget.CoordinatorLayout> 

風格:父= 「Theme.AppCompat.Light」

<!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light"> 
     <!-- Customize your theme here. --> 
     <!--<item name="colorPrimary">@color/colorPrimary</item>--> 
     <!--<item name="colorPrimaryDark">@color/colorPrimaryDark</item>--> 
     <!--<item name="colorAccent">@color/colorAccent</item>--> 
    </style> 

清單:在應用程序標記中設置主題爲@style/AppTheme

<application 
    ... 
    android:theme="@style/AppTheme" 
    ... 
    > 
</application> 
0

活動創建後使用這個。這將正常工作。

Snackbar.make(getApplicationContext(), "hello snackbar", Snackbar.LENGTH_LONG) 
       .show(); 
0

,你可以嘗試這個

把這個在您的activity_main.xml中

<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:visibility="gone" 
    android:src="@android:drawable/ic_dialog_email" /> 

//這個按鈕是不可見的好

寫信的活動的OnCreate O的方法來驗證碼在應用啓動時顯示一次

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
        .setAction("Action", null).show(); 
     } 
    }); 
    fab.performClick(); 
0

我認爲你可以使用這個

Snackbar snackbar = Snackbar.make(snackbarCoordinatorLayout, "Snackbar", 
        Snackbar.LENGTH_LONG); 

,然後將採取行動,小吃店,即,當你點擊小吃吧這個動作將發生

snackbar.setAction("OK", new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Toast.makeText(SnackBarActivity.this,"snackbar OK clicked", 
         Toast.LENGTH_LONG).show(); 
       } 
      }); 

更多信息請訪問點擊here