我有一个 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();
}
}
}
});
最佳答案
在 Activity
或 Fragment
的 onCreate()
中创建一个 ProgressDialog
实例
private ProgressDialog mProgressDialog;
mProgressDialog = new ProgressDialog(getActivity());
mProgressDialog.setMessage("Signing In...");
当你点击按钮调用时,
mProgressDialog.show();
并且,当您从 HTTP 请求
获得响应时,调用
mProgressDialog.hide();
然后在 Activity onDestroy
中关闭对话框
@Override
protected void onDestroy(){
if (mProgressDialog != null) {
mProgressDialog.dismiss();
mProgressDialog = null;
}
super.onDestroy();
}
如果您在 AsyncTask 中执行网络请求。您可以在 onPreExecute() 中显示进度并在
onPostExecute()`
关于android - 函数运行时的进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23401038/