2013-04-04 167 views
2

我有烤面包的问题。当用户成功登录数据库时,如何让吐司消失。我怎样才能让吐司消失?

代码供用户无法登录这样的:

类BuatLogin扩展的AsyncTask {

@Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pDialog = new ProgressDialog(Login_layout.this); 
     pDialog.setMessage("Login_layout Progress..."); 
     pDialog.setIndeterminate(false); 
     pDialog.setCancelable(true); 
     pDialog.show(); 
    } 
    protected String doInBackground(String... args) { 
     String usr = user.getText().toString(); 
     String pwd = pass.getText().toString(); 

     Log.d("1 "+usr, pwd); 
     // Building Parameters 
     List<NameValuePair> params = new ArrayList<NameValuePair>(); 
     params.add(new BasicNameValuePair("usr", usr)); 
     params.add(new BasicNameValuePair("pwd", pwd)); 
     Log.d("2 "+usr, pwd); 
     Log.d(usr,url_create_login); 

     // getting JSON Object 
     JSONObject json = jsonParser.makeHttpRequest(url_create_login, 
       "POST", params); 
     Log.d("Buat Respond", json.toString()); 
     try { 
      int sukses = json.getInt(TAG_SUKSES); 

      if (sukses == 1) { 
       String nim=json.getString(TAG_NIM); 
       String jrs=json.getString(TAG_JRS); 
       Log.d(TAG_NIM,nim); 

       // sukses login 
       Intent i = new Intent(getApplicationContext(), Mhs_main_layout.class); 
       i.putExtra(TAG_NIM, nim); 
       i.putExtra(TAG_JRS,jrs); 
       startActivity(i); 
       finish(); 
      } else if(sukses == 2) { 
       String nip=json.getString(TAG_NIP); 
       Log.d(TAG_NIP,nip); 
       Intent i = new Intent(getApplicationContext(), Admin_main_layout.class); 
       i.putExtra(TAG_NIP, nip); 
       startActivity(i); 

       finish(); 
      }else if(sukses == 3){ 
       setResult(100); 
       //toas(100); 
       //finish(); 

      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 


     return null; 

    } 

    //Respon dari upadte buku class 
    protected void onPostExecute(String file_url) { 
     pDialog.dismiss(); 
     int resultCode = 100; 
     if (resultCode != 100); 
     { 
     Toast.makeText(Login_layout.this, "Nip/Nim Atau Password TIdak Sesuai Silahkan Coba Lagi ", Toast.LENGTH_LONG).show(); 
     } 
    } 

} 

但敬酒不断上来就连用户成功登录,并在日志猫没有错误。我能做些什么来使它消失?

回答

0

这里有您需要的squeletal形式做什么:

int doInBackground(...) { 
    blablabla... 

    if (sukses == 1) { 
    blablabla... 
    // The value 1 will be returned to onPostExecute(int resultCode) 
    // as the value for the parameter "resultCode": 
    return 1; // or return sukses; same thing. 
    } else if (sukses == 2) { 
    blablabla... 
    return 2; // or return sukses; same thing. 
    } else { 
    blablabla... 
    return 3; // or return sukses; same thing. 
    } 
} 

void onPostExecute(int resultCode) { 
    // resultCode now contains the value returned by doInBackground(): 
    if (resultCode== 1) { 
    Toast.makeText(Login_layout.this, "1", Toast.LENGTH_LONG).show(); 
    finish(); 
    } else if (resultCode== 2) { 
    Toast.makeText(Login_layout.this, "2", Toast.LENGTH_LONG).show(); 
    finish(); 
    } else { 
    Toast.makeText(Login_layout.this, "3", Toast.LENGTH_LONG).show(); 
    } 
} 

随意完成这个骨架您的需要。我已将调用完成()传递给onPostExecute(),以确保线程在发布toast之前不会被取消,但您应搜索Google或自行测试以找到最佳做法。

+0

好吧,先生,非常感谢..我会尝试... – 2013-04-04 12:41:12

0

那么,如果电话setResult(100);设置变量resultCode为100,那么测试if (resultCode == 100)将始终为真,因此始终显示敬酒。

您确定不想测试if (resultCode != 100)吗?

+0

好吧,先生,我会尝试.. – 2013-04-04 02:59:30

+0

仍然没有结果好先生...我尝试,但吐司继续出现时,用户成功登录.. – 2013-04-04 03:02:21

+0

作为参数传递给onPostExecute的值等于值由函数doInBackground()返回。没有看到第二个功能;很难告诉你你做错了什么。你已经向To​​ast()示范了我们的代码,但是你没有向我们展示真正问题所在的代码。在没有看到所有相关的代码的情况下,不可能告诉你发生了什么,并且向我们展示只有一些代码块很难找到错误。 – SylvainL 2013-04-04 03:21:30