2012-11-26 41 views
0

我對從XML文件檢索值以及如何有效使用它沒有明確的工作知識。 有人能幫我理解,該怎麼做?從array.xml中檢索值並在主要活動中檢查它

這裏我的文件,並在我的主要activity.what我需要做的,是 ,我會選擇設置操作,然後我會檢查的確切運營商的名稱和將檢索所需夫婦字符串從類名爲CallManager的並會通過另一個代碼分段進行調用。 我是做一個單一的運營商那裏preString和內部數字大小是fixed.So這是沒有問題。但我需要他們夫婦做,從preferences.please -taking名help.thanks-Piyal

<string-array name="operatormodes"> 
    <item >Airtel</item> 
    <item >Banglalink</item> 
    <item >Grameen Phone</item> 
    <item >Robi</item> 
    <item >TeleTalk</item> 
</string-array> 



prefs = PreferenceManager.getDefaultSharedPreferences(this); 

    // Operator 
    prefs.edit().putString(PreferencesActivity.KEY_OPERATOR_MODE, CaptureActivity.DEFAULT_OPERATOR_MODE).commit(); 


    // Retrieve from preferences, and set in this Activity, the Operator mode 
    String[] operatorModes = getResources().getStringArray(R.array.operatormodes); 
    String operatorModeName = prefs.getString(PreferencesActivity.KEY_OPERATOR_MODE, operatorModes[0]); 
    Log.w("im changed", "Airtel"); 
    if (operatorModeName.equals(operatorModes[0])) 
    { 
     callManager.setOperatorName("Airtel"); 
     callManager.setOperatorBasedInternalDigit("Airtel"); 
     callManager.setOperatorBasedInternalPreString("Airtel"); 
     callManager.setPreString(callManager.internalPreString); 
    } 
    else if (operatorModeName.equals(operatorModes[1])) 
    { 
     callManager.setOperatorName("Banglalink"); 
     callManager.setOperatorBasedInternalDigit("Banglalink"); 
     callManager.setOperatorBasedInternalPreString("Banglalink"); 
     callManager.setPreString(callManager.internalPreString); 
    } 
    else if (operatorModeName.equals(operatorModes[2])) 
    { 
     callManager.setOperatorName("Grameen Phone"); 
     callManager.setOperatorBasedInternalDigit("Grameen Phone"); 
     callManager.setOperatorBasedInternalPreString("Grameen Phone"); 
     callManager.setPreString(callManager.internalPreString); 
    } 

    else if (operatorModeName.equals(operatorModes[3])) 
    { 
     callManager.setOperatorName("Robi"); 
     callManager.setOperatorBasedInternalDigit("Robi"); 
     callManager.setOperatorBasedInternalPreString("Robi"); 
     callManager.setPreString(callManager.internalPreString); 
    } 

    else if (operatorModeName.equals(operatorModes[4])) 
    { 
     callManager.setOperatorName("TeleTalk"); 
     callManager.setOperatorBasedInternalDigit("TeleTalk"); 
     callManager.setOperatorBasedInternalPreString("TeleTalk"); 
     callManager.setPreString(callManager.internalPreString); 
    } 


    prefs.registerOnSharedPreferenceChangeListener(listener); 

回答

0

的問題不是很清楚,但我希望這個片段應該可以幫助您:

String[] operatorModes = getResources().getStringArray(R.array.operatormodes); 
    String operatorModeName = prefs.getString(PreferencesActivity.KEY_OPERATOR_MODE, operatorModes[0]); 
    Log.w("im changed", operatorModeName); 
    for(int i = 0; i < operatorModes.length; i++) { 
     if (operatorModeName.equals(operatorModes[i])) 
     { 
      callManager.setOperatorName(operatorModeName); 
      callManager.setOperatorBasedInternalDigit(operatorModeName); 
      callManager.setOperatorBasedInternalPreString(operatorModeName); 
      callManager.setPreString(callManager.internalPreString); 
     } 
    }  

    prefs.registerOnSharedPreferenceChangeListener(listener); 
+0

但是,我必須固定運營商名稱發送到CallManager的,那麼它會給出一個finalString變量的值。 – Piyal

相關問題