Java 简单浇铸或组合int

Java 简单浇铸或组合int,java,android,casting,Java,Android,Casting,我对iOS上的android编程还不熟悉。我似乎无法理解这一点,这似乎很简单。我想调用一个方法并发送一个号码,让它根据号码播放特定的声音。我有大约100种声音,所以当我点击ListView中的一行时,我想调用这个方法。如何将num附加到“声音”中 对于ListView来说是这样的 初始化 ListView list = (ListView) findViewById(R.id.vmf_items_list); list.setAdapter(adapter); list.setOnItemCli

我对iOS上的android编程还不熟悉。我似乎无法理解这一点,这似乎很简单。我想调用一个方法并发送一个号码,让它根据号码播放特定的声音。我有大约100种声音,所以当我点击ListView中的一行时,我想调用这个方法。如何将num附加到“声音”中

对于ListView来说是这样的

初始化

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

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

    }
};
private-OnItemClickListener LstListener=new-OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
int Pos=位置;
//你的方法
}
};
您可以使用:

int id = getResources().getIdentifier("sound"+num, "raw", getPackageName());
获取声音ID并将其传递给方法

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

你已经解决了你的问题。但是,如果以上所有答案的方法对你都不起作用,那么我想你可能会尝试的方法很少。他们可能会帮助你

方法1:

另一种方法是将100首歌曲的名称保存在
array.xml
文件中。比如:

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

如果您不想在数组中存储100个名称,可能会有另一种方法。我假设你已经以某种模式命名了你的100首歌曲。所以,假设它像
song\u name1
song\u name3
song\u name3

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

然后将该字符串连接到要传递的
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);
}

希望这有帮助

我认为,如果您传递的是1-100之间的不同数字,if将在函数内的
num
变量中使用该数字。您的意思是您有100个声音,并且希望根据传递的整数参数访问它们吗?是的。我有100种声音,我想传递一个整数,根据整数,我想播放100种声音中的一种。如果我传递了数字24,我想播放名为:sound24的文件。它不工作,我想我必须使用Uri而不是int。这是有效的,当我复制并粘贴代码时,我忘记将单词“sound”更改为实际名称。我是个笨蛋。谢谢。很高兴我能帮助你:)是的,但是我需要能够加载100个声音中的一个,这取决于int是什么。我如何制作R.raw.sound+Pos?@Bob:你能解决这个问题吗?谢谢你花时间来帮助我,但我不明白你的例子会有什么帮助。我需要能够获取:R.raw.alarm0,其中数字可以是0-100,并将其放入:mPlayer=MediaPlayer.create(MainActivity.this,R.raw.alarm0);
//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);
}
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);
}