2014-02-19 77 views
1

我在我的應用程序中的問題,我有一個formulaire嘩嘩用戶應填寫信息並將其保存到數據庫中,我有兩個編輯文本和單選按鈕:的onclick沒有恢復方法工作

rm_1 = (EditText) findViewById(R.id.rm_1); 
    rm_2 = (EditText) findViewById(R.id.rm_2); 
    rm_3 = (EditText) findViewById(R.id.rm_3); 
    rm_13_1 = (RadioButton) findViewById(R.id.rm_13_1); 
    rm_13_2 = (RadioButton) findViewById(R.id.rm_13_2); 
    rm_14_1 = (RadioButton) findViewById(R.id.rm_14_1); 
    rm_14_2 = (RadioButton) findViewById(R.id.rm_14_2); 
    rm_14_3 = (RadioButton) findViewById(R.id.rm_14_3); 

我有一個方法的onclick嘩嘩與價值選擇的每一個無線電布頓關聯:

 public void onRadioButtonClicked(View view) { 
    // Is the button now checked? 

    boolean checked = ((Checkable) view).isChecked(); 


    switch (view.getId()) { 
    case R.id.rm_13_1: 
     if (checked) 
      a = 0; 
      break; 
    case R.id.rm_13_2: 
     if (checked) 
      a = 1; 
     break; 
    case R.id.rm_14_1: 
     if (checked) 
      b = 0; 
     break; 
    case R.id.rm_14_2: 
     if (checked) 
      b = 1; 
     break; 
    case R.id.rm_14_3: 
     if (checked) 
      b = 2; 
     break; 
    case R.id.rm_14_4: 
     if (checked) 
      b = 3; 
     break; 
    } 

到現在爲止一切正常,用戶在編輯文本編寫並選擇單選按鈕,並在數據庫中我找到了相同的信息。 爲了保存用戶輸入的數據,我使用了共享偏好設置,因此當用戶返回活動時,用戶所寫的文本和選中的單選按鈕會再次出現。

問題發生在用戶更改活動時,如果他返回到活動狀態,他會發現單選按鈕已被選中,但是當他點擊保存按鈕時,他在數據庫中獲得的值爲零,就像方法:

    public void onRadioButtonClicked(View view) 

不工作,我不知道爲什麼?用戶需要再次單擊單選按鈕才能在方法上指定值onRadioButtonClicked(View view),那麼如何解決這個問題呢?

這是我保存數據:

  Button bton = (Button) findViewById(R.id.ajoutUn); 
    bton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
        ajouter(v); 
     } 
        public void ajouter(View v) { 
        db.open(); 
       db.insertMENAGE(rm_1ts, rm_2ts, rm_3ts, rm_4ts, rm_5ts, 
       rm_6ts, rm_7ts, rm_8ts, rm_9ts, rm_10ts, rm_11ts, 
       a, b, rm_14_4_autrets, rm_15ts);}} 

而且在數據庫中的方法是:

    public long insertMENAGE(String Region, String Provence_prefecture , String Commune_Arrondissement ,String N_district, String N_M_district , String N_menage_logement, String Adresse_menage , String Nom_Enqueteur, String code_enquêteur , String Date_realisation_enquête, String Nom_controleur , String Date_controle, int echantillon_principal, int Statut_enquêté , String autre, String Observations ) { 
     ContentValues initialValues = new ContentValues(); 
       initialValues.put(col_Commune_Arrondissement,Commune_Arrondissement); 
     initialValues.put(col_N_district,N_district); 
     initialValues.put(col_N_M_district,N_M_district); 
     initialValues.put(col_N_menage_logement,N_menage_logement); 
     initialValues.put(col_Adresse_menage,Adresse_menage); 
     initialValues.put(col_Nom_Enqueteur,Nom_Enqueteur); 
     initialValues.put(col_code_enquêteur ,code_enquêteur); 
     initialValues.put(col_Date_realisation_enquête,Date_realisation_enquête); 
     initialValues.put(col_Nom_controleur,Nom_controleur); 
     initialValues.put(col_Date_controle,Date_controle); 
     initialValues.put(col_echantillon_principal,echantillon_principal); 
     initialValues.put(col_Statut_enquêté,Statut_enquêté); 
     initialValues.put(col_Observations,Observations); 

      return db.insertOrThrow(MENAGE,null, initialValues); 
    } 
+0

你也應該張貼在您設定的偵聽器的代碼,只是張貼相關的所有單選按鈕的代碼。 – thelawnmowerman

+0

發佈onRadioButtonClicked的代碼和您用於將數據保存到數據庫的代碼,以便我們能夠爲您提供幫助。 – chipopo

+0

public void onRadioButtonClicked(View view),這種方法就像一個列表器,它在選擇單選按鈕時需要考慮 –

回答

1

檢查您的onResume()方法的所有單選按鈕值,如下所示,並將值分配給您的變量。

if(rm_13_1.isChecked()) 
    { 

    } 
    else if(rm_13_2.isChecked()) 
    { 

    } 
    else if(rm_14_1.isChecked()) 
    { 

    } 
    else if(rm_14_2.isChecked()) 
    { 

    } 
    else if(rm_14_3.isChecked()) 
    { 

    } 

希望它會工作

+0

是的,它的工作原理,感謝您的答案! –

1

首先我發佈這個答案,因爲文本是太大的。

要麼有一些有意義的代碼,我們沒有看到,或有一些問題理解了一些事情。

方法onRadioButtonClicked(View view)僅在用戶單擊radioButton時調用。當用戶從另一個活動回來時,該按鈕已被選中。這是正確的,這就是它應該如何表現的。據我所見,這個代碼隻影響變量'a'和'b'。

另一方面,你說你有一個單獨的'保存'按鈕。當用戶從另一個Acivity返回時,變量'a'和'b'應該保留它們的值,'save'代碼的結果應該可以工作。

我知道這不是一個答案,只是一些見解,希望能以某種方式幫助你。

+0

感謝你的時間,你已經很好地描述了這個問題,但我必須清楚(a)和(b)與所選單選按鈕相關的值,但是當用戶返回活動時,這些值不會立即受到影響,用戶應該再次點擊才能使(a)和(b)的值受到影響。這就是問題 –

+0

@Arain:你對此有所瞭解嗎? –

+0

你可以在點擊保存按鈕時檢查所有這些單選按鈕值@UtmanAlami – Andrain