gpt4 book ai didi

android - 从选定的微调项字符串准备资源 ID

转载 作者:行者123 更新时间:2023-11-30 01:41:47 25 4
gpt4 key购买 nike

我有一个带有各种项目的微调器,我用它来从所选项目中获取文本。

我想用这个文本为openRawResource准备一个资源id,我的代码看起来像

    Spinner spinner = (Spinner) v.findViewById(R.id.accident);
String text = spinner.getSelectedItem().toString();
String newt = "R.raw." + text;
int textxx = Integer.parseInt(newt);

InputStream is = getResources().openRawResource(textxx);

但它不起作用,任何想法

最佳答案

问题就在这里

int textxx = Integer.parseInt(newt);

正确的做法是:

int resID = getResources().getIdentifier(text, "raw", getApplicationContext().getPackageName());

现在您可以按如下方式使用 InputStream:

InputStream is = getResources().openRawResource(resID);

编辑

does not allow getPackageName() says its indefined

如果您正在进行Activity,您可以这样做:

this.getPackageName(); //this -> context

如果你在 Fragment 上,你可以这样做:

getActivity().getPackageName(); 

but only opens the first item in the spinner does not open other files when i select other items

您需要实现 onItemSelected()请参阅下面的代码。

final Spinner sp = (Spinner)findViewById(R.id.spinner);
sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
// your code here
String text = sp.getSelectedItem().toString();
int resID = getResources().getIdentifier(text, "raw", getPackageName());
InputStream is = getResources().openRawResource(resID);
Toast.makeText(MainActivity.this, "Clicked", Toast.LENGTH_SHORT).show();
}

@Override
public void onNothingSelected(AdapterView<?> parentView) {
// your code here
}

});

关于android - 从选定的微调项字符串准备资源 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34402434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com