我的android代码奇怪的东西

时间:2014-11-28 09:02:04

标签: java android

这是我在扩展Asynctask及其doInBackground()方法的类中的代码:

        //Building Parameters
        List<NameValuePair> paramss = new ArrayList<NameValuePair>();
        paramss.add(new BasicNameValuePair(TAG_EMAIL, email));

        //getting JSON string from url
        JSONObject json = parser.makeHttpRequest(url_get_one_member, "POST",paramss);

        Log.d("Ambil Member",json.toString());

        //cari tag success
        try{
            int success = json.getInt(TAG_SUCCESS);
            if(success == 1){
                member = json.getJSONArray(TAG_MEMBER);
                JSONObject jObject = member.getJSONObject(0);

                String emaill = jObject.getString(TAG_EMAIL);
                String nama = jObject.getString(TAG_NAMA);
                String alamat = jObject.getString(TAG_ALAMAT);
                String no_telp = jObject.getString(TAG_NO_TELP);
                String umur = jObject.getString(TAG_UMUR);
                String tempatLahir = jObject.getString(TAG_TEMPAT_LAHIR);
                String tglLahir = jObject.getString(TAG_TANGGAL_LAHIR);
                String jlhPeliharaan = jObject.getString(TAG_JUMLAH_PELIHARAAN);
                String warna = jObject.getString(TAG_WARNA_FAVORIT);
                String jenisKelamin = jObject.getString(TAG_JENIS_KELAMIN);
                String kota = jObject.getString(TAG_JENIS_KOTA);

                //masukin semuanya ke variabel
                txt_email.setText(emaill);
                txt_nama.setText(nama);
                txt_alamat.setText(alamat);
                txt_no_telp.setText(no_telp);
                txt_umur.setText(umur);
                txt_tempat_lahir.setText(tempatLahir);
                txt_tanggal_lahir.setText(tglLahir);
                txt_jumlah_peliharaan.setText(jlhPeliharaan);
                txt_warna_favorit.setText(warna);
                if(jenisKelamin.equals("1")){
                    txt_jenis_kelamin.setText("Pria");
                } else {
                    txt_jenis_kelamin.setText("Wanita");
                }
                txt_id_kota.setText(kota);
            }
        }catch (JSONException ex){
            ex.printStackTrace();
        }
        return null;

有时候它有效,有时它不会。

我已经检查了我的logcat,json.toString()正在运行,但我无法将所有文本设置为TextView。

onCreate()中,我一直在初始化它们:

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

    //textview
    txt_email = (TextView) findViewById(R.id.txt_email);
    txt_nama = (TextView) findViewById(R.id.txt_nama);
    txt_alamat = (TextView) findViewById(R.id.txt_alamat);
    txt_no_telp = (TextView) findViewById(R.id.txt_no_telp);
    txt_umur = (TextView) findViewById(R.id.txt_umur);
    txt_tempat_lahir = (TextView) findViewById(R.id.txt_tempat_lahir);
    txt_tanggal_lahir = (TextView) findViewById(R.id.txt_tanggal_lahir);
    txt_jumlah_peliharaan = (TextView) findViewById(R.id.txt_jumlah_peliharaan);
    txt_jenis_kelamin = (TextView) findViewById(R.id.txt_jenis_kelamin);
    txt_warna_favorit = (TextView) findViewById(R.id.txt_warna_favorit);
    txt_id_kota = (TextView) findViewById(R.id.txt_id_kota);

    //button
    buttonLogout = (Button) findViewById(R.id.buttonLogout);
    buttonLogout.setOnClickListener(new android.view.View.OnClickListener() {

        @Override
        public void onClick(View v) {
            prefs = getSharedPreferences("login", Context.MODE_PRIVATE);
            editor = prefs.edit();
            editor.clear();
            editor.commit();

            Intent backToLogin = new Intent(Profile.this,Login.class);
            startActivity(backToLogin);
            finish();
        }
    });

    btnEditProfil = (Button) findViewById(R.id.btnEditProfil);
    btnEditProfil.setOnClickListener(new android.view.View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent intentEdit = new Intent(getApplicationContext(),EditProfile.class);
            intentEdit.putExtra("emailMember", email);
            startActivity(intentEdit);
        }
    });
    btnPeliharaan = (Button) findViewById(R.id.btnPeliharaan);
    btnPeliharaan.setOnClickListener(new android.view.View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent intentPeliharaan = new Intent(getApplicationContext(),ShowPeliharaan.class);
            startActivity(intentPeliharaan);
        }
    });

    //nagmbil email
    Intent intent = getIntent();
    email = intent.getStringExtra("emailMember");

    new LoadMember().execute();
}

1 个答案:

答案 0 :(得分:0)

像这样编写AsyncTask类:

private class MyAsyncTask extends AsyncTask<String, Void, String>{

    @Override
    protected String doInBackground(String... params) {
        // TODO Auto-generated method stub
        List<NameValuePair> paramss = new ArrayList<NameValuePair>();
        paramss.add(new BasicNameValuePair(TAG_EMAIL, email));

        //getting JSON string from url
        JSONObject json = parser.makeHttpRequest(url_get_one_member, "POST",paramss);

        Log.d("Ambil Member",json.toString());
        return json.toString();
    }

    @Override
    protected void onPostExecute(String result) {
        // TODO Auto-generated method stub
        super.onPostExecute(result);
        JSONObject json=new JSONObject(result);
        try{
        int success = json.getInt(TAG_SUCCESS);
        if(success == 1){
            member = json.getJSONArray(TAG_MEMBER);
            JSONObject jObject = member.getJSONObject(0);

            String emaill = jObject.getString(TAG_EMAIL);
            String nama = jObject.getString(TAG_NAMA);
            String alamat = jObject.getString(TAG_ALAMAT);
            String no_telp = jObject.getString(TAG_NO_TELP);
            String umur = jObject.getString(TAG_UMUR);
            String tempatLahir = jObject.getString(TAG_TEMPAT_LAHIR);
            String tglLahir = jObject.getString(TAG_TANGGAL_LAHIR);
            String jlhPeliharaan = jObject.getString(TAG_JUMLAH_PELIHARAAN);
            String warna = jObject.getString(TAG_WARNA_FAVORIT);
            String jenisKelamin = jObject.getString(TAG_JENIS_KELAMIN);
            String kota = jObject.getString(TAG_JENIS_KOTA);

            //masukin semuanya ke variabel
            txt_email.setText(emaill);
            txt_nama.setText(nama);
            txt_alamat.setText(alamat);
            txt_no_telp.setText(no_telp);
            txt_umur.setText(umur);
            txt_tempat_lahir.setText(tempatLahir);
            txt_tanggal_lahir.setText(tglLahir);
            txt_jumlah_peliharaan.setText(jlhPeliharaan);
            txt_warna_favorit.setText(warna);
            if(jenisKelamin.equals("1")){
                txt_jenis_kelamin.setText("Pria");
            } else {
                txt_jenis_kelamin.setText("Wanita");
            }
            txt_id_kota.setText(kota);
        }
        }catch (JSONException ex){
         ex.printStackTrace();
      }
    }

    @Override
    protected void onPreExecute() {
        // TODO Auto-generated method stub
        super.onPreExecute();
    }

}