如果变量为空,如何显示makeText文本 [英] How can I show makeText text if variable is empty

查看:46
本文介绍了如果变量为空,如何显示makeText文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我选中此"a"时,变量是否为空我收到错误消息" java.lang.NullPointerException:尝试调用接口方法'java.lang.String java.lang.CharSequence.toString()'"

"a"具有此数据"http://www.librarything.com/isbn/9780071792745";来自Firebase数据库.

这是我的代码

  myRef.addListenerForSingleValueEvent(new ValueEventListener(){@Override公共无效onDataChange(@NonNull DataSnapshot快照){List< String>wishlist_item = new ArrayList< String>();对于(DataSnapshot postSnapshot:snapshot.getChildren()){wishlist_item.add(postSnapshot.getValue().toString());}//清单1if(wishlist_item.size()> = 1){L1.setOnClickListener(new View.OnClickListener(){字符串a = wishlist_item.get(0);@Overridepublic void onClick(View view){if(a.contains(null)){Toast.makeText(wish_list.this,收藏夹为空",Toast.LENGTH_SHORT).show();}别的{Intent launchWish = new Intent(wish_list.this,web_view2.class);launchWish.putExtra("k",a);startActivity(launchWish);}}});} 

我希望程序显示收藏夹为空",当"a"中没有数据时,如何检查a是否为空?

解决方案

最好检查DataSnapshot是否存在.如果存在,则将您的物品添加到列表中.如果列表为空,请显示您的Toast消息.

  myRef.addListenerForSingleValueEvent(new ValueEventListener(){@Overridepublic void onDataChange(@NonNull DataSnapshot快照){List< String>wishlist_item = new ArrayList<>();对于(DataSnapshot postSnapshot:snapshot.getChildren()){如果(postSnapshot.exists()){wishlist_item.add(postSnapshot.getValue().toString());}}如果(wishlist_item.isEmpty()){Toast.makeText(wish_list.this,收藏夹为空",Toast.LENGTH_SHORT).show();} 别的 {L1.setOnClickListener(new View.OnClickListener(){字符串a = wishlist_item.get(0);@Overridepublic void onClick(View view){Intent launchWish =新的Intent(wish_list.this,web_view2.class);launchWish.putExtra("k",a);startActivity(launchWish);}});} 

When I check this "a" variable is empty or not I got an error message "java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.String java.lang.CharSequence.toString()'"

"a" has this data ""http://www.librarything.com/isbn/9780071792745" which is from firebase database.

Here is my code

myRef.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                List<String> wishlist_item = new ArrayList<String>();
                for (DataSnapshot postSnapshot: snapshot.getChildren()) {
                    wishlist_item.add(postSnapshot.getValue().toString());
                }

                //list 1
                if(wishlist_item.size()>=1){
                    L1.setOnClickListener(new View.OnClickListener() {
                        String a = wishlist_item.get(0);
                        @Override
                        public void onClick(View view) {
                            if(a.contains(null)){
                                Toast.makeText(wish_list.this, "Favourite is empty", Toast.LENGTH_SHORT).show();
                            }else{
                                Intent launchWish = new Intent(wish_list.this,web_view2.class);
                                launchWish.putExtra("k",a);
                                startActivity(launchWish);
                            }
                        }
                    });
                }

I want the program to show "Favourite is empty" when there is no data in "a" how can I check if a is empty or not?

解决方案

It's better to check if DataSnapshot is exist or not. If it's exist add your items to your list. If list is empty show your Toast message.

 myRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange (@NonNull DataSnapshot snapshot){
            List<String> wishlist_item = new ArrayList<>();
            for (DataSnapshot postSnapshot : snapshot.getChildren()) {
                if (postSnapshot.exists()) {
                    wishlist_item.add(postSnapshot.getValue().toString());
                }
            }
            if (wishlist_item.isEmpty()) {
                Toast.makeText(wish_list.this, "Favourite is empty", Toast.LENGTH_SHORT).show();
            } else {
                L1.setOnClickListener(new View.OnClickListener() {
                    String a = wishlist_item.get(0);
                    @Override
                    public void onClick(View view) {
                        Intent launchWish = new Intent(wish_list.this, web_view2.class);
                        launchWish.putExtra("k", a);
                        startActivity(launchWish);
                    }
                });
            }

这篇关于如果变量为空,如何显示makeText文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆