マテリアルデザインが初めてです。完全に2つの作品のAndroidのSnackbar.make()メソッドの最初の引数
new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(mCoordinatorLayout,...
}}
new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view,...
}}
両方:私はスナックバーの表示について検索している間、私はそれを行うための2種類の方法があります参照してください。なぜ私は理解できませんでしたか? viewはButtonオブジェクトを参照し、mCoordinatorLayoutはCoordinatorLayoutオブジェクトを参照します。それらは異なるオブジェクトですが、Snackbar.make()メソッドの第1引数として2つのうちのいずれかを指定できます。どうして?
完全なソースコードは以下の通りです:
メインレイアウト:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout ... >
<Button
android:id="@+id/showSnackbarButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/show_snackbar"/>
</android.support.design.widget.CoordinatorLayout>
主な活動:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mCoordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinatorLayout);
mShowSnackbarButton = (Button) findViewById(R.id.showSnackbarButton);
mShowSnackbarButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(mCoordinatorLayout,
"This is a simple Snackbar", Snackbar.LENGTH_LONG)
.setAction("CLOSE", new View.OnClickListener() {
@Override
public void onClick(View v) {
// Custom action
Toast.makeText(MainActivity.this,"this is a toast message", Toast.LENGTH_SHORT).show();
}
}).show();
}
});
}