2013-11-20 2 views
0

Я хочу передать свой id в другое действие. Можете ли вы показать мне, как? Я пытаюсь искать в google, но ничто не может мне помочь. Надеюсь, ты поможешь мне немного. я должен быть велик, если ты поможешь мне. Я застрял с этой проблемой в течение 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

+0

Что является PHP тег для.? –

+0

Я бы сказал: синтаксис C++ похож на синтаксис php, поэтому кто интересуется разницей? :-) – arkascha

ответ

0

Я рекомендую называть намерение в onPostExecute AsyncTask. Также сохраните текст кнопки в строке перед входом в doInBackground. DoInBackground - отдельная нить и не может связываться с основным потоком пользовательского интерфейса.

0

Как сказал Берсерк, doInBackground - отдельная нить, которая не может связываться с основной линией пользовательского интерфейса, поэтому, как и моя рекомендация, вы должны startActivity() в onPostExecute. просто изменить ниже

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(); 
    } 
} 

}

+0

Можете ли вы показать мне код? – Juraganerka

+0

Возможно, вам стоит посмотреть этот http://stackoverflow.com/questions/9671546/asynctask-android-example – lgw150

+0

извините, что ваш код не работает. – Juraganerka

Смежные вопросы