Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android AsyncTask中的进度对话框在活动引用上生成错误。不是封闭类_Android_Android Asynctask - Fatal编程技术网

Android AsyncTask中的进度对话框在活动引用上生成错误。不是封闭类

Android AsyncTask中的进度对话框在活动引用上生成错误。不是封闭类,android,android-asynctask,Android,Android Asynctask,我试图使用AsyncTask将一些数据发送到web数据库,但当我尝试初始化进度对话框时,在preExecute方法的这一行中出现错误。 dialog=新建ProgressDialog(MainActivity.this,R.style.CustomAlertDialogStyle) 有关MainActivity的错误。这表示“MainActivity不是封闭类” 这是我的全部代码 package com.cplusplusapp.rashidfaheem.hybridsoftwaresoluti

我试图使用AsyncTask将一些数据发送到web数据库,但当我尝试初始化进度对话框时,在preExecute方法的这一行中出现错误。 dialog=新建ProgressDialog(MainActivity.this,R.style.CustomAlertDialogStyle)

有关MainActivity的错误。这表示“MainActivity不是封闭类”

这是我的全部代码

package com.cplusplusapp.rashidfaheem.hybridsoftwaresolutions.hbss.rashidfaheem.webservice;

import android.app.ProgressDialog;
import android.content.Context;
import android.net.Uri;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.HttpURLConnection;
import javax.net.ssl.HttpsURLConnection;

public class MainActivity extends AppCompatActivity {
Spinner sp;
Button signup, login;
EditText edtname, edtemail, edtaddress, edtpassword, edtphone, edtcity;
String name,pass,add,catagory,phone,email,city;
ArrayAdapter<String> adapter;
String[] options = {"Student", "Teacher"};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    signup = (Button) findViewById(R.id.signup);
    login = (Button) findViewById(R.id.login);
    edtname = (EditText) findViewById(R.id.edtname);
    edtemail = (EditText) findViewById(R.id.edtemail);
    edtaddress = (EditText) findViewById(R.id.edtaddress);
    edtpassword = (EditText) findViewById(R.id.edtpassword);
    edtphone = (EditText) findViewById(R.id.edtphone);
    edtcity = (EditText) findViewById(R.id.edtcity);
    sp = (Spinner) findViewById(R.id.sp);

    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, options);
    sp.setAdapter(adapter);

    login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

        }
    });

    signup.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String permission="false";
            new adduser().execute(edtname.getText().toString(), edtemail.getText().toString(), edtpassword.getText().toString(),
                    edtcity.getText().toString(), edtphone.getText().toString(), edtaddress.getText().toString(), permission, sp.getSelectedItem().toString());
        }
    });
}
}

class adduser extends AsyncTask<String, String, String>{
Context mcontext;
ProgressDialog dialog;
HttpURLConnection conn;
URL url=null;


@Override
protected void onPreExecute() {
    super.onPreExecute();
    dialog = new ProgressDialog(MainActivity.this, R.style.CustomAlertDialogStyle);
    dialog.setMessage("Registering User, Please Wait");
    dialog.setCancelable(false);
    dialog.show();
}

@Override
protected String doInBackground(String... strings) {
    try{
        // Enter URL address where your php file resides
        url=new URL("http://127.0.0.1/rashid/signup.php");

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

    try {

        // Setup HttpURLConnection class to send and receive data from php and mysql
        conn = (HttpURLConnection) url.openConnection();
        conn.setReadTimeout(10000);
        conn.setConnectTimeout(15000);
        conn.setRequestMethod("POST");

        // setDoInput and setDoOutput method depict handling of both send and receive
        conn.setDoInput(true);
        conn.setDoOutput(true);

        // Append parameters to URL
        Uri.Builder builder = new Uri.Builder();
        builder.appendQueryParameter("customer_name", strings[0]);
        builder.appendQueryParameter("customer_email", strings[1]);
        builder.appendQueryParameter("customer_pass", strings[2]);
        builder.appendQueryParameter("customer_city", strings[3]);
        builder.appendQueryParameter("customer_contact", strings[4]);
        builder.appendQueryParameter("customer_address", strings[5]);
        builder.appendQueryParameter("permission", strings[6]);
        builder.appendQueryParameter("category", strings[7]);

        String query = builder.build().getEncodedQuery();

        // Open connection for sending data
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream(), "UTF-8"));
        writer.write(query);
        writer.flush();
        writer.close();

        conn.connect();

    } catch (IOException e){
        e.printStackTrace();
    } catch (Exception e){
        e.printStackTrace();
    }

    try{
        int code = conn.getResponseCode();

        // Check if successful connection made
        if (code== HttpsURLConnection.HTTP_OK){

            // Read data sent from server
            BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            StringBuilder result = new StringBuilder();
            String line;

            while ((line=reader.readLine())!=null){
                result.append(line);
            }
            // Pass data to onPostExecute method
            return (result.toString());
        } else {
            return ("unsuccessfull");
        }
    }catch (IOException e){
        e.printStackTrace();
        return ("Exception");
    } finally {
        conn.disconnect();
    }


}


@Override
protected void onPostExecute(String result) {
    dialog.dismiss();
    if (result.equalsIgnoreCase("true")){
        /* Here launching another activity when login successful. If you persist login state
            use sharedPreferences of Android. and logout button to clear sharedPreferences.
             */
        Toast.makeText(mcontext, "Registered Successfully", Toast.LENGTH_LONG).show();
    } else if (result.equalsIgnoreCase("false")){
        // If username and password does not match display a error message
        Toast.makeText(mcontext, "Register First", Toast.LENGTH_LONG).show();

    } else if (result.equalsIgnoreCase("Exception")|| result.equalsIgnoreCase("Unsuccessful")){
        Toast.makeText(mcontext, "OOPs! Something went wrong. Connection Problem.", Toast.LENGTH_LONG).show();
    }
}
}
package com.cplusplusapp.rashidfaheem.hybridsoftwaresolutions.hbss.rashidfaheem.webservice;
导入android.app.ProgressDialog;
导入android.content.Context;
导入android.net.Uri;
导入android.os.AsyncTask;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.Spinner;
导入android.widget.Toast;
导入java.io.BufferedReader;
导入java.io.BufferedWriter;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.io.OutputStream;
导入java.io.OutputStreamWriter;
导入java.net.MalformedURLException;
导入java.net.URL;
导入java.net.HttpURLConnection;
导入javax.net.ssl.HttpsURLConnection;
公共类MainActivity扩展了AppCompatActivity{
纺纱机;
按钮注册、登录;
EditText-edtname、edtemail、edtaddress、edtpassword、edtphone、edtcity;
字符串名称、传递、添加、分类、电话、电子邮件、城市;
阵列适配器;
字符串[]选项={“学生”,“教师”};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
注册=(按钮)findViewById(R.id.signup);
login=(按钮)findviewbyd(R.id.login);
edtname=(EditText)findViewById(R.id.edtname);
edtemail=(EditText)findViewById(R.id.edtemail);
edtaddress=(EditText)findViewById(R.id.edtaddress);
edtpassword=(EditText)findViewById(R.id.edtpassword);
edtphone=(EditText)findViewById(R.id.edtphone);
edtcity=(EditText)findViewById(R.id.edtcity);
sp=(微调器)findViewById(R.id.sp);
adapter=new ArrayAdapter(此,android.R.layout.simple\u微调器\u项,选项);
sp.setAdapter(适配器);
login.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
}
});
signup.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
String permission=“false”;
new adduser().execute(edtname.getText().toString(),edtemail.getText().toString(),edtpassword.getText().toString(),
edtcity.getText().toString(),edtphone.getText().toString(),edtaddress.getText().toString(),permission,sp.getSelectedItem().toString();
}
});
}
}
类adduser扩展异步任务{
语境;
进程对话;
httpurl连接连接;
URL=null;
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
dialog=新建ProgressDialog(MainActivity.this,R.style.CustomAlertDialogStyle);
setMessage(“正在注册的用户,请稍候”);
对话框。可设置可取消(false);
dialog.show();
}
@凌驾
受保护的字符串背景(字符串…字符串){
试一试{
//输入php文件所在的URL地址
url=新url(“http://127.0.0.1/rashid/signup.php");
}捕获(格式错误){
e、 printStackTrace();
}
试一试{
//设置HttpURLConnection类以从php和mysql发送和接收数据
conn=(HttpURLConnection)url.openConnection();
连接设置读取超时(10000);
连接设置连接超时(15000);
conn.setRequestMethod(“POST”);
//setDoInput和setDoOutput方法描述了发送和接收的处理
conn.setDoInput(真);
连接设置输出(真);
//将参数附加到URL
Uri.Builder=新的Uri.Builder();
builder.appendQueryParameter(“客户名称”,字符串[0]);
builder.appendQueryParameter(“客户电子邮件”,字符串[1]);
builder.appendQueryParameter(“客户通行证”,字符串[2]);
生成器。附录查询参数(“客户城市”,字符串[3]);
生成器。附录查询参数(“客户联系人”,字符串[4]);
builder.appendQueryParameter(“客户地址”,字符串[5]);
builder.appendQueryParameter(“权限”,字符串[6]);
builder.appendQueryParameter(“类别”,字符串[7]);
字符串查询=builder.build().getEncodedQuery();
//打开用于发送数据的连接
BufferedWriter writer=新的BufferedWriter(新的OutputStreamWriter(conn.getOutputStream(),“UTF-8”);
writer.write(查询);
writer.flush();
writer.close();
连接();
}捕获(IOE异常){
e、 printStackTrace();
}捕获(例外e){
e、 printStackTrace();
}
试一试{
int code=conn.getResponseCode();
//检查连接是否成功
if(code==HttpsURLConnection.HTTP\u确定){
//读取从服务器发送的数据
BufferedReader=新的BufferedReader(新的InputStreamReader(conn.getInputStream());
StringBuilder结果=新建StringBuilder();
弦线;
而((line=reader.readLine())!=null){
结果。追加(行);
}
//将数据传递给onPostExecute方法
返回(result.toString());
}否则{
返回(“未成功”);
}
}捕获(IOE异常){
e、 printStackTrace();
返回(“例外”);
}最后{
连接断开();
}
}
@凌驾
受保护的void onPostExecute(字符串结果){
dialog.dismise();
if(result.equalsIgnoreCase(“true”)){
/*登录成功后,在此启动另一个活动。如果您保持登录状态
使用sharedPre
public class adduser extends AsyncTask<Context, String, ArrayList<Card>>
{

Context ApplicationContext;
    Activity mActivity;

   public adduser (Activity activity)
   {
     super();
     mActivity = activity;
   }