普通网友 2015-01-24 14:53
浏览 24
已采纳

我正在android中创建一个注册页面

I am making a registeration page in android for login using php , mysql n json... My app is crashing at the moment i clicks on .execute().... COuld anyone suggest me a solution... I know i am doing something wrong ... I am getting response from the server... I have tested it...

public class Signup extends Activity{

    private EditText et1,et2,et3,et4,et5;
    private Button bt1,bt2;

    ProgressDialog dialog;
    JSONParser jsonParser = new JSONParser();

    private static String url ="http://raictronics.com/script/register.php";
    private static String TAG1= "success", TAG2="message";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.signup);

        et1 =(EditText) findViewById(R.id.etv_username);
        et2 =(EditText) findViewById(R.id.etv_password);
        et3 =(EditText) findViewById(R.id.etv_retypepassword);
        et4 =(EditText) findViewById(R.id.etv_name);
        et5 =(EditText) findViewById(R.id.etv_mobile);

        bt1 = (Button) findViewById(R.id.back_mainmenu);
        bt2 = (Button) findViewById(R.id.confirm_signup);

        bt1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
            Intent i = new Intent(Signup.this, Login.class);
            startActivity(i);
            finish();
            }
        });

        bt2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                new JSONsignup().execute();
            }
        });

    }

    class JSONsignup extends AsyncTask<String, String, String>
    {   
        int success;

        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();
            dialog = new ProgressDialog(Signup.this);
            dialog.setMessage("Creating User...");
            dialog.setIndeterminate(false);
            dialog.setCancelable(false);
            dialog.show();
        }

        @Override
        protected String doInBackground(String... params) {

            String i1= et1.getText().toString();
            String i2= et2.getText().toString();
            String i3= et3.getText().toString();
            String i4= et4.getText().toString();
            String i5= et5.getText().toString();

            try{
                List<NameValuePair> params1 = new ArrayList<NameValuePair>();
                params1.add(new BasicNameValuePair("username", i1));
                params1.add(new BasicNameValuePair("password", i2));
                params1.add(new BasicNameValuePair("password2", i3));
                params1.add(new BasicNameValuePair("name", i4));
                params1.add(new BasicNameValuePair("mobile", i5));

                Log.d("request!", "starting");

                JSONObject json = jsonParser.makeHttpRequest(url, "POST", params1);

                Log.d("Login attempt", json.toString());

                success = json.getInt(TAG1);
                if(success == 1)
                {
                    Log.d("User Created!", json.toString());
                    finish();
                    return json.getString(TAG2);

                }

                else{
                    Log.d("Login Failure!", json.getString(TAG2));
                    return json.getString(TAG2);
                }
            }
            catch(JSONException e)
            {
                e.printStackTrace();
            }

            return null;
        }

        @Override
        protected void onPostExecute(String file_url) {
            // TODO Auto-generated method stub

            dialog.dismiss();
            if(file_url != null)
            {
                Toast.makeText(getApplicationContext(), file_url, Toast.LENGTH_SHORT).show();
            }

        }

    }
}
  • 写回答

3条回答 默认 最新

  • dsagzmosl32217092 2015-01-24 16:16
    关注

    You can pass the application context into the AsyncTask class like this

     bt2.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(View v) {
    
                new JSONSignup(Signup.this).execute();
            }
    
    
        });
    

    And then edit your JSONSignup AsyncTask class like this:

    class JSONSignup extends AsyncTask<Void, Void, Void>
        {
        Context context;
        ProgressDialog pDialog;
    
        JSONSignup(Context context) {
            this.context = context;
        }
    
        @Override
        protected void onPreExecute() {
           super.onPreExecute();
          // Showing progress dialog
          pDialog = new ProgressDialog(context);
          pDialog.setMessage("Please wait...");
          pDialog.setCancelable(false);
          pDialog.show();
    
       }
        ...
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。