android: Как заполнить счетчик строкой [], которая является списком установленных пакетов? - PullRequest
0 голосов
/ 17 марта 2011
 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);

Предыдущий код выбрасывает ошибки для меня в затмении. Я понимаю, как получить список установленных приложений, и понимаю, как заполнить счетчик, используя метод createFromResource. Однако я никогда не пытался сделать это таким образом? Кто-нибудь может направить меня в правильном направлении?

Ответы [ 3 ]

0 голосов
0 голосов
/ 27 ноября 2014

Даже если уже поздно, вы должны использовать этот конструктор 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);
0 голосов
/ 17 марта 2011

Создайте файл с именем arrays.xml в папке values.

Внутри, что дают:

<?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);

Надеюсь, это может сработать для вас.

...