Я создаю корневое приложение, позволяющее 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);
}
Спасибо за любые советы вы могли бы иметь! Приветствия!
это похоже. Я создам пользовательский адаптер и дам вам знать, как он работает для меня. Спасибо! – daxgirl