【发布时间】:2020-10-18 02:43:24
【问题描述】:
我有一个 ArrayAdapter 显示项目列表。
每个项目都有一个按钮。
当按钮被点击时,我想显示snackbar(现在它显示一个 toast 消息)。
我想知道如何在 ArrayAdapter 中使用这样的东西?
Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content),text,Snackbar.LENGTH_SHORT);
View sbView = snackbar.getView();
sbView.setBackgroundColor(getResources().getColor(R.color.colorPrimaryDark));
TextView tv = (TextView) (snackbar.getView()).findViewById(com.google.android.material.R.id.snackbar_text);
Typeface font = ResourcesCompat.getFont(getBaseContext(), R.font.assistant);
tv.setTypeface(font);
tv.setTextSize( 14 );
snackbar.setAnchorView(findViewById( R.id.bottom_navigation ));
snackbar.setDuration( 5000 );
snackbar.show();
因为我什至在适配器中都没有 findVireById。
适配器的具体部分是:
viewHolder.btn_AddToMyItems.setOnClickListener( v -> {
auth = FirebaseAuth.getInstance();
db = FirebaseFirestore.getInstance();
Intent intent = new Intent(getContext(), MyItemsActivity.class);
Map<String, Object> general_item = new HashMap<>();
general_item .put( "ItemID", item.getId() );
general_item .put("DateCreated", FieldValue.serverTimestamp());
CollectionReference colRefMyItems = db.collection( "Users" ).document( auth.getUid() ).collection( "MyItems" );
Query queryMyItems = colRefMyItems.whereEqualTo("ItemsID", item.getId());
queryMyItems.get().addOnCompleteListener( task -> {
if (task.isSuccessful()) {
QuerySnapshot snapshot = task.getResult();
if (snapshot.isEmpty()){
db.collection( "Users" ).document( auth.getUid() ).collection( "Items" ).add( general_item );
Toast.makeText(getContext(), "The item was added successfully", Toast.LENGTH_SHORT).show();
} else{
Toast.makeText(getContext(), "This item is already on your list", Toast.LENGTH_SHORT).show();
}
intent.putExtra( "TAG","999");
}
} );
谢谢
【问题讨论】:
-
显示适配器代码
-
在下面查看我的答案
标签: java android-arrayadapter android-snackbar