2014-11-29 3 views
-1

Я создаю корневое приложение, позволяющее debloat apk-файлы из приложения system/app и system/priv. У меня есть ListView, который берет содержимое обоих dirs и фильтрует их против строкового массива, который я построил (не все приложения могут быть распущены). Он вписывается в список с режимом множественного выбора. Теперь я не могу справиться с тем, как отображать файлы apk со своими значками. На данный момент я использую простой адаптер. Но я могу переключиться на базовый адаптер. Мне нужен способ добавления значков приложений в Image View. Я не использую диспетчер пакетов для создания списка, по нескольким причинам мне нужно, чтобы это были фактические файлы apk, которые отображаются. Может кто-нибудь, пожалуйста, помогите мне с помощью способа сделать отображение файла apk с его значком? Как в корневом проводнике f.e.? Это основная часть кода, который берет на себя в списке на данный момент:Java/Android Отображение файлов .apk как файлов, но с их значками

public class MainActivity extends ListActivity 
       implements View.OnClickListener, 
       AdapterView.OnItemSelectedListener{ 
    private List<String> fileList = new ArrayList<String>(); 
    Button debloat; 
    ListView appList; 
    File app = new File("/system/app"); 
    File privApp = new File("/system/priv-app"); 
    ArrayAdapter<String> directoryList; 
    BufferedWriter debloatBW; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     try { 
      Runtime.getRuntime().exec("su"); 
     } catch (IOException e) { 
      e.printStackTrace(); 
    } 

    setContentView(R.layout.activity_main); 

    debloat = (Button) findViewById(R.id.button); 
    debloat.setOnClickListener(this); 

    appList = getListView(); 

    File[] files = app.listFiles(); 
    File[] files1 = privApp.listFiles(); 
    List<String> relevantApps = 
     Arrays.asList(getResources().getStringArray(R.array.include_apk)); 
    fileList.clear(); 
    for (File file : files){ 
     if (file.isFile() 
      && file.getPath().endsWith(".apk") 
      && relevantApps.contains(file.getName().toString())) 
     { 
      fileList.add(file.getName()); 
     } 

    } 
    for (File file1 : files1) { 
     if (file1.isFile() 
      && file1.getPath().endsWith(".apk") 
      && relevantApps.contains(file1.getName().toString())) 
     { 
      fileList.add(file1.getName()); 
     } 
    } 

    directoryList = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_multiple_choice, fileList); 

    appList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
    appList.setAdapter(directoryList); 




} 

Спасибо за любые советы вы могли бы иметь! Приветствия!

ответ

0

Я рекомендую создать собственный адаптер custome, в котором вы надуваете строку как обычно, а затем устанавливаете текст, чтобы получить значок пакета с помощью этого сообщения Get Apk Icon и установить его в ImageView в строке. Как создать адаптер custome, который вы узнаете в этом уроке Using Android ListView.

+0

это похоже. Я создам пользовательский адаптер и дам вам знать, как он работает для меня. Спасибо! – daxgirl

Смежные вопросы