将edittext值转换为整数数组

时间:2018-04-22 05:48:39

标签: android android-mediaplayer

我的原始文件夹包含 a.mp3 z.mp3 的音频文件。 我想以编程方式播放它们。

int[ ] myMusic = {R.raw.(edittext.getText(first letter),R.raw.(edittext.getText(2nd letter)

如何让它循环播放所有文件?

3 个答案:

答案 0 :(得分:0)

如果我理解正确......

// Get from a Context, such as Activity 
Resources r = getResources();
String pkg = getPackageName();

// Extract and loops over text
String letters = edittext.getText().toString();
int size = letters.length();
int[] myMusic = new int[size];
for (int i = 0; i < size; i++) {
    // Get the R.raw.letter values 
    int resId = r.getIdentifier(letters.charAt(i), "raw", pkg);
    myMusic[i] = resId;
} 

答案 1 :(得分:0)

我还没有在Android Studio上测试过,但试试这个:

int[] myMusic = new int[26]; // from a to z we have 26 letters
int i = 0;
for (char c = 'a'; c <= 'z'; c++){
    int resId = getResources().getIdentifier(String.valueOf(c), "raw", getPackageName());
    myMusic[i] = resId;
    i++;
}

更新1:现在我明白了。

String editTextValue = yourEditText.getText().toString().toLowerCase();
final int length = editTextValue.length();
int[] myMusic = new int[length];
for (int i = 0; i < length; i++) {
    char letter = editTextValue.charAt(i);
    myMusic[i] = getResources().getIdentifier(String.valueOf(letter), "raw", getPackageName());
}

答案 2 :(得分:0)

我认为您想要在String输入的EditText内播放音乐。每个字符代表原始文件夹中的文件名。因此,您必须使用EditText的每个characeter作为文件名。

        int size = edittext.getText().toString().length();
        int[] myMusic = new int[size ];
        for(int i=0 ; i < size ; i++){
            int resID=getResources().getIdentifier(edittext.getText().toString().substring(i,i), "raw", getPackageName());
            myMusic[i] = resID;
        }