将按钮传递给下一个活动

时间:2013-11-20 07:05:50

标签: android mysql

我想将我的id传递给另一个活动。你能告诉我怎么样吗?我尝试在谷歌搜索,但没有什么可以帮助我。我希望你能帮我一点。如果你能帮助我,我一定很棒。我坚持这个问题3天了。让我困惑。

这是我的传递代码:

private ProgressDialog mProgressDialog;
private static final String TAG_SUCCESS = "success";
JSONParser jsonParser = new JSONParser();
EditText inputfirstname,
         inputmiddlename,
         inputlastname,
         inputaliasname,
         inputcitybirth,
         inputyearbirth;
RadioGroup gender;
RadioButton mr,mrs;
private static final String TAG_ID = "ID_Person";
private static String url_create_person ="http://172.18.0.20/person_new_xml.php";
private Spinner date,month,year;
Button saveperson,cancelperson;

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

    inputfirstname  = (EditText)  findViewById(R.id.newfirstname);
    inputmiddlename = (EditText)  findViewById(R.id.newmiddlename);
    inputlastname   = (EditText)  findViewById(R.id.newlastname);
    inputaliasname  = (EditText)  findViewById(R.id.newaliasname);
    gender          = (RadioGroup)findViewById(R.id.jekel);
    inputcitybirth  = (EditText)  findViewById(R.id.newcitybirth);

    date            = (Spinner)   findViewById(R.id.spinnerdate);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource
    (this, R.array.date_array, android.R.layout.simple_spinner_dropdown_item);
    date.setAdapter(adapter);

    month           = (Spinner)   findViewById(R.id.spinnermonth);
    ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource
    (this, R.array.month_array, android.R.layout.simple_spinner_dropdown_item);
    month.setAdapter(adapter2);

    year            = (Spinner) findViewById(R.id.spinneryear);
    ArrayAdapter<CharSequence> adapter3 = ArrayAdapter.createFromResource
    (this, R.array.year_array, android.R.layout.simple_spinner_dropdown_item);
    year.setAdapter(adapter3);

    cancelperson    = (Button)    findViewById(R.id.btncancelnewperson);
    saveperson      = (Button)    findViewById(R.id.btnsnextnewperson);

    saveperson.setOnClickListener(new View.OnClickListener() {

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

}

private class CreatePerson extends AsyncTask<String, String, String>{

     @Override
        protected void onPreExecute() {
            super.onPreExecute();
            mProgressDialog = new ProgressDialog(MainActivity.this);
            mProgressDialog.setMessage("Creating Product..");
            mProgressDialog.setIndeterminate(false);
            mProgressDialog.setCancelable(true);
            mProgressDialog.show();
        }

    @Override
    protected String doInBackground(String... args) {
        // TODO Auto-generated method stub

        String select = null;
        switch (gender.getCheckedRadioButtonId()) 
        {
        case R.id.mr:   
            select="Mr.";
            break;
        case R.id.mrs:
            select="Mrs.";
        default:
            break;
        }
        String firstname = inputfirstname.getText().toString();
        String middlename = inputmiddlename.getText().toString();
        String lastname = inputlastname.getText().toString();
        String aliasname = inputaliasname.getText().toString();
        String city = inputcitybirth.getText().toString();


        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("FirstName", firstname));
        params.add(new BasicNameValuePair("MiddleName", middlename));
        params.add(new BasicNameValuePair("LastName", lastname));
        params.add(new BasicNameValuePair("AliasName", aliasname)); 
        params.add(new BasicNameValuePair("Gender", select));
        params.add(new BasicNameValuePair("CityBirth", city));
        params.add(new BasicNameValuePair("DateBirth", date.getSelectedItem().toString()));
        params.add(new BasicNameValuePair("MonthBirth", month.getSelectedItem().toString()));
        params.add(new BasicNameValuePair("YearBirth", year.getSelectedItem().toString()));

        JSONObject json = jsonParser.makeHttpRequest(url_create_person, "POST", params);

        Log.d("Create Response", json.toString());
        try {
            int success = json.getInt(TAG_SUCCESS);
            if (success == 1) {



                String id = ((Button) findViewById(R.id.btnsnextnewperson)).getText().toString();

                Intent i = new Intent(getApplicationContext(),CreateUser.class);
                i.putExtra(TAG_ID, id);
                startActivity(i);
                finish();
            } else {

            }

        } catch (JSONException e) {
            // TODO: handle exception
            e.printStackTrace();
        }
        return null;
    }

    protected void onPostExecute(String file_url) {
        // dismiss the dialog once done
        mProgressDialog.dismiss();
    }
}

}

这是我的接收代码:

private ProgressDialog mProgressDialog;
private static final String TAG_SUCCESS = "success";
JSONParser jsonParser = new JSONParser();
String ID;
//String Name;
private static final String TAG_Person = "person";
private static final String TAG_ID = "ID_Person";
TextView id;
EditText inputuser,inputpassword,inputanswer;
private Spinner question;
Button save;

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

    ID = getIntent().getStringExtra(TAG_ID);

    id =(TextView) findViewById(R.id.textname);
    inputuser = (EditText) findViewById(R.id.inputuser);
    inputpassword = (EditText) findViewById(R.id.inputpassword);
    inputanswer = (EditText) findViewById(R.id.inputanswer);

    question            = (Spinner)   findViewById(R.id.questionspinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource
    (this, R.array.securityquestion, android.R.layout.simple_spinner_dropdown_item);
    question.setAdapter(adapter);
    new User().execute();

    save = (Button) findViewById(R.id.savebutton);
    save.setOnClickListener(new View.OnClickListener() {

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

}
private class User extends AsyncTask<String, String, JSONArray>{

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        mProgressDialog = new ProgressDialog(CreateUser.this);
        mProgressDialog.setMessage("Loading products. Please wait...");
        mProgressDialog.setIndeterminate(false);
        mProgressDialog.setCancelable(false);
        mProgressDialog.show();
    }

    @Override
    protected JSONArray doInBackground(String... param) {
        // TODO Auto-generated method stub
        JSONArray personobj = new JSONArray();
        try {
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("ID_Person", ID));
            String url_product_detials = "http://172.18.0.20/get.php";
            JSONObject json = jsonParser.makeHttpRequest(
                    url_product_detials, "GET", params);
            Log.d("Single Person Details", json.toString());
            personobj = json.getJSONArray(TAG_Person);
        } catch (JSONException e) {
            // TODO: handle exception
            e.printStackTrace();
        }
        return personobj;
    }
    protected void onPostExecute(JSONArray personobj){
        mProgressDialog.dismiss();
        try {
            for (int i = 0; i < personobj.length(); i++) {

            JSONObject person;
             person = personobj.getJSONObject(i);
             String Id = person.getString("ID_Person");


             id.setText(Id);
             }  
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

screen shoot

2 个答案:

答案 0 :(得分:0)

我建议在AsyncTask的onPostExecute中调用intent。在进入doInBackground之前,还要将按钮文本存储在字符串中。 doInBackground是一个单独的线程,无法与主UI线程通信。

答案 1 :(得分:0)

正如berserk所说,doInBackground是一个单独的线程,无法与主UI线程进行通信,因此,正如我的推荐,你应该在onPostExecute中启动start()。 只需改为

private class CreatePerson extends AsyncTask<String, String, String>{

 @Override
    protected void onPreExecute() {
        super.onPreExecute();
        mProgressDialog = new ProgressDialog(MainActivity.this);
        mProgressDialog.setMessage("Creating Product..");
        mProgressDialog.setIndeterminate(false);
        mProgressDialog.setCancelable(true);
        mProgressDialog.show();
    //String select = null;//member var of outside class

    switch (gender.getCheckedRadioButtonId()) 
    {
    case R.id.mr:   
        select="Mr.";
        break;
    case R.id.mrs:
        select="Mrs.";
    default:
        break;
    }
    String firstname = inputfirstname.getText().toString();
    String middlename = inputmiddlename.getText().toString();
    String lastname = inputlastname.getText().toString();
    String aliasname = inputaliasname.getText().toString();
    String city = inputcitybirth.getText().toString();


    //List<NameValuePair> params = new ArrayList<NameValuePair>();//member var of outside class

    params.add(new BasicNameValuePair("FirstName", firstname));
    params.add(new BasicNameValuePair("MiddleName", middlename));
    params.add(new BasicNameValuePair("LastName", lastname));
    params.add(new BasicNameValuePair("AliasName", aliasname)); 
    params.add(new BasicNameValuePair("Gender", select));
    params.add(new BasicNameValuePair("CityBirth", city));
    params.add(new BasicNameValuePair("DateBirth", date.getSelectedItem().toString()));
    params.add(new BasicNameValuePair("MonthBirth", month.getSelectedItem().toString()));
    params.add(new BasicNameValuePair("YearBirth", year.getSelectedItem().toString()));
    }

@Override
protected String doInBackground(String... args) {
    // TODO Auto-generated method stub



   // JSONObject json = null//member var of outside class
    json = jsonParser.makeHttpRequest(url_create_person, "POST", params);



    return null;
}

protected void onPostExecute(String file_url) {
    // dismiss the dialog once done
    if(mProgressDialog != null && mProgressDialog.isShow()){
    mProgressDialog.dismiss();
    }
    Log.d("Create Response", json.toString());
    try {
        int success = json.getInt(TAG_SUCCESS);
        if (success == 1) {



            String id = ((Button) findViewById(R.id.btnsnextnewperson)).getText().toString();

            Intent i = new Intent(getApplicationContext(),CreateUser.class);
            i.putExtra(TAG_ID, id);
            startActivity(i);
            finish();
        } else {

        }

    } catch (JSONException e) {
        // TODO: handle exception
        e.printStackTrace();
    }
}

}