我有一个SignUp
函数,在单击按钮时调用。在onClickListener
函数中,它的调用方式如下:
SignUp(Uname.getText().toString(), Pword.getText().toString(),
Umail.getText().toString());
当该功能正在运行时,我需要显示一个进度条。我怎么能这样做?
以下是SignUp()
函数的代码:
public void SignUp (String Username, String Password, String Email) {
Integer Userch = CheckUName (Username);
Integer UserMl = CheckUMail (Email);
if (Userch == 3)
{
Toast.makeText(getActivity(), "این نام کاربری قبلا ثبت شده است",
Toast.LENGTH_LONG).show();
}
else if (UserMl == 3)
{
Toast.makeText(getActivity(), "این پست الکترونیکی قبلا ثبت شده است", Toast.LENGTH_LONG).show();
}
else if ((UserMl == 4) && (Userch == 4))
{
String Pass = null;
InputStream is = null;
String result = "";
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("UUName", Username));
nameValuePairs.add(new BasicNameValuePair("UPWord", Password));
nameValuePairs.add(new BasicNameValuePair("UMail", Email));
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(SignupAddress);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
Toast.makeText(getActivity(), "ثبت نام انجام شد", Toast.LENGTH_LONG).show();
}catch(Exception e){
Log.e("log_tag", "Error in http connection "+e.toString());
}
}
}
为libin编辑: 我怎么称呼:
public void onClick(View v)
{
mProgressDialog.show();
StrictMode.setThreadPolicy(policy);
String Result = login(Username.getText().toString());
if (Username.getText().toString().equals(""))
{
Toast.makeText(getActivity(), "نام کاربری را وارد کنید", Toast.LENGTH_SHORT).show();
mProgressDialog.hide();
}
else if (Password.getText().toString().equals(""))
{
Toast.makeText(getActivity(), "کلمه عبور را وارد کنید", Toast.LENGTH_SHORT).show();
mProgressDialog.hide();
}
else
{
if (Result.equals(Password.getText().toString()))
{
Intent i = new Intent(getActivity(), HomePage.class);
i.putExtra("new_variable_name",Username.getText().toString());
startActivity(i);
}
else if (Result == "Wrong Username or Password")
{
mProgressDialog.hide();
Toast.makeText(getActivity(), "نام کاربری یا کلمه عبور اشتباه است", Toast.LENGTH_SHORT).show();
}
else if (Result == "Error Connection")
{
mProgressDialog.hide();
Toast.makeText(getActivity(), "مشکلی در برقراری ارتباط وجود دارد", Toast.LENGTH_SHORT).show();
}
else if (Result == "Convert Error")
{
mProgressDialog.hide();
Toast.makeText(getActivity(), "مشکلی بوجود آمده است", Toast.LENGTH_SHORT).show();
}
else
{
mProgressDialog.hide();
Toast.makeText(getActivity(), "نام کاربری یا کلمه عبور اشتباه است", Toast.LENGTH_SHORT).show();
}
}
}
});
答案 0 :(得分:2)
在ProgressDialog
onCreate()
或Activity
Fragment
内创建 private ProgressDialog mProgressDialog;
mProgressDialog = new ProgressDialog(getActivity());
mProgressDialog.setMessage("Signing In...");
的实例
mProgressDialog.show();
单击按钮调用时,
HTTP Request
并且,当您从 mProgressDialog.hide();
收到回复时,请致电
onDestroy
在活动@Override
protected void onDestroy(){
if (mProgressDialog != null) {
mProgressDialog.dismiss();
mProgressDialog = null;
}
super.onDestroy();
}
中,关闭对话框
onPreExecute() and hide in
如果您在AsyncTask中执行网络请求。您可以在{{1}} onPostExecute()`
中显示进度