在android中的条件语句中显示toast

时间:2013-07-27 11:39:01

标签: android sql-server toast

我创建了一个将数据插入sql server的应用程序。我将列NAME作为唯一键。 我希望如果我通过edittext输入相同的名称来插入...它应该给一个祝酒词的消息。 但它没有发生。我无法理解我在哪里犯了错误。 与服务器连接没有问题。唯一的事情是,如果我再次输入相同的名字,我必须显示Toast msg。 我的代码是.......

public void onClick(View v) {
                    // TODO Auto-generated method stub

                    String myloc=loc.getText().toString();
                    String myname=name.getText().toString();
                    String myphone=phone.getText().toString();
                    initilize();
                    ResultSet rs;
                     try{
                    Statement statement=connect.createStatement();
                    rs=statement.executeQuery("SELECT * FROM FORM1");
                     List<Map<String,String>>data=null;
                     data=new ArrayList<Map<String,String>>();
                     while(rs.next()){
                         Map<String,String>datanum=new HashMap<String,String>();
                         datanum.put("a", rs.getString("NAME"));
                         data.add(datanum);
                     }
                     if(data.contains(myname)){
                     Toast.makeText(c, myname+" Already stored: please choose different one", Toast.LENGTH_LONG).show();
                     }
                     else{
                        insert(myname,myphone,myloc); 
                     }
                     }catch(Exception e){
                            Log.e("ERROR", e.getMessage()); 
                         }


                }
pzz家伙......帮我一个人......

1 个答案:

答案 0 :(得分:0)

使用data.contains(myname),您试图检查myname变量中是否有data类型的字符串,但事实上,您的data类型{{1}因此,当您调用传递字符串的List<Map<String,String>>方法时,您正在contains(Object object)equals之间执行Map<String,String>操作,这显然会导致String 。所以我建议你写这样的东西

false

或者有更好的方法,只需将查询更改为List<String> data = new ArrayList<String>(); while(rs.next()) { data.add(rs.getString("NAME")); } if(data.contains(myname)){ Toast.makeText(c, myname+" Already stored: please choose different one", Toast.LENGTH_LONG).show(); } 并检查结果集是否为空。