2012-11-26 37 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

相关问题