[英]android: How to populate a spinner with a string[] which is a list of installed packages?
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List pkgAppsList = this.getPackageManager().queryIntentActivities( mainIntent, 0);
final String[] apps = (String[]) pkgAppsList.toArray();
Spinner appSpinner = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> appAdapter = new ArrayAdapter(this, apps, android.R.layout.simple_spinner_item);
appAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
appSpinner.setAdapter(cloudAdapter);
之前的代码在eclipse中为我抛出了错误。 我了解如何获取已安装应用程序的列表,并且了解如何使用createFromResource方法填充微调框。 但是我从未尝试过以这种方式这样做吗? 有人能引导我正确的方向吗?
如果已经晚了,您应该改用ArrayAdapter
此构造函数:
ArrayAdapter<String> appAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, apps);
appAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
appSpinner.setAdapter(appAdapter);
在values
文件夹中创建一个名为arrays.xml
文件。
里面给出:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="array_name">
<item>value1</item>
<item>value2</item>
</string-array>
</resources>
然后在您的微调框内输入:
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.array_name, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
spinner.setAdapter(adapter);
希望这对您有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.