简单的转换或组合int

时间:2013-06-02 05:48:53

标签: java android casting

我是iOS的Android编程新手。我似乎无法解决这个问题,看起来很简单。我想调用一个方法并向它发送一个数字,并根据数字播放一定的声音。我有大约100个声音,所以当我点击ListView中的一行时,我想调用此方法。如何将num附加到“声音”

playSound(1);

void playSound(int num) {
String string = new String("R.raw.sound"+ num);  
    Uri myUri = Uri.parse(string);
    mPlayer = MediaPlayer.create(MainActivity.this, myUri);
}

3 个答案:

答案 0 :(得分:0)

对于ListView,它是

<强>初始化

ListView list = (ListView) findViewById(R.id.vmf_items_list);
list.setAdapter(adapter);
list.setOnItemClickListener(LstListener);

OnItemClickListener

private OnItemClickListener LstListener = new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                   int Pos=position;
                   //your method

    }
};

答案 1 :(得分:0)

您可以使用:

int id = getResources().getIdentifier("sound"+num, "raw", getPackageName());

获取声音ID并将其传递给方法

mPlayer = MediaPlayer.create(MainActivity.this, id);

答案 2 :(得分:0)

跳过你已经解决了你的问题。但是,如果所有上述答案方法都不适合您,那么您可能会尝试并且正在考虑的方法很少。他们可能会帮助你。

方法1:

另一种方法是在array.xml文件中保存100首歌曲的名称。类似的东西:

<resources>
    <string-array name="song_names">        
        <item>song_name1</item>
        <item>song_name2</item>  
        <item>song_name3</item>
        ...
    </string-array>
</resources>

然后您可以获取数组并从那里选择ith名称。     //在onCreate()或函数外的某个地方     String [] allSongNames = context.getResources()。getStringArray(R.array.song_names);

//Get ith name based on your parameter
void playSound(int num) {
    String string = allSongNames[num];  
    Uri myUri = Uri.parse(string);
    mPlayer = MediaPlayer.create(MainActivity.this, myUri);
}

方法2:

如果您不想在数组中存储100个名称,则可能有备用项。我假设你已经用某种模式命名了你的100首歌曲。所以,假设它像song_name1song_name3song_name3 ...

string.xml中只能有一个字符串:     SONG_NAME

然后,您将该字符串连接到要传递的num值:

String songNameIni = res.getString(R.string.initial_song_name);
void playSound(int num) {
    String fullSongName = songNameIni + String.valueOf(num);  
    Uri myUri = Uri.parse(fullSongName);
    mPlayer = MediaPlayer.create(MainActivity.this, myUri);
}

希望这会有所帮助。