Android Studio Вывод в меню

280
02 ноября 2017, 04:53

Привет, есть у меня такой код:

AppsListActivity.class

import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class AppsListActivity extends AppCompatActivity {
    private PackageManager manager;
    private List<Item> apps;
    private ListView list;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_apps_list);
        loadApps();
        loadListView();
        addClickListener();
    }
    private void loadApps(){
        manager = getPackageManager();
        apps = new ArrayList<>();
        Intent i = new Intent(Intent.ACTION_MAIN, null);
        i.addCategory(Intent.CATEGORY_LAUNCHER);
        List<ResolveInfo> availableActivities = manager.queryIntentActivities(i, 0);
        for (ResolveInfo ri : availableActivities) {
            Item app = new Item();
            app.label = ri.activityInfo.packageName;    //Get app package
            app.name = ri.loadLabel(manager);           //Get app name
            app.icon = ri.loadIcon(manager);            //Get app icon
            apps.add(app);
        }
    }
    private void loadListView(){
        list = (ListView) findViewById(R.id.list);
        ArrayAdapter<Item> adapter = new ArrayAdapter<Item>(this, R.layout.item, apps){
            @NonNull
            @Override
            public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
                if (convertView == null){
                    convertView = getLayoutInflater().inflate(R.layout.item, null);
                }
                ImageView appIcon = (ImageView) convertView.findViewById(R.id.icon);
                appIcon.setImageDrawable(apps.get(position).icon);
                TextView appName = (TextView) convertView.findViewById(R.id.name);
                appName.setText(apps.get(position).name);
                return convertView;
            }
        };
        list.setAdapter(adapter);
    }
    private void addClickListener(){
        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                Intent i = manager.getLaunchIntentForPackage(apps.get(position).label.toString());
                startActivity(i);
            }
        });
    }
}

И код Item.class

import android.graphics.drawable.Drawable;
        public class Item {
            CharSequence name;      //App name
            CharSequence label;     //Package name
            Drawable icon;          //App icon
        }

И его нужно выводить в меню, пример такой:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:showIn="navigation_view">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_camera"
            android:icon="@drawable/ic_menu_camera"
            android:title="Import" />
        <item
            android:id="@+id/nav_gallery"
            android:icon="@drawable/ic_menu_gallery"
            android:title="Gallery" />
        <item
            android:id="@+id/nav_slideshow"
            android:icon="@drawable/ic_menu_slideshow"
            android:title="Slideshow" />
        <item
            android:id="@+id/nav_manage"
            android:icon="@drawable/ic_menu_manage"
            android:title="Tools" />
    </group>
    <item android:title="Communicate">
        <menu>
            <item
                android:id="@+id/nav_share"
                android:icon="@drawable/ic_menu_share"
                android:title="Share" />
            <item
                android:id="@+id/nav_send"
                android:icon="@drawable/ic_menu_send"
                android:title="Send" />
        </menu>
    </item>
</menu>

Это возможно? И через что? Так как ListView тут не работает.

READ ALSO
Process finished with exit code -1

Process finished with exit code -1

После выполнения программы в IntelliJ IDEA в консоли появляется "Process finished with exit code -1"Вроде бы должно возвращать: "Process finished with exit code 0"

591
Как установить apk программно? [дубликат]

Как установить apk программно? [дубликат]

На данный вопрос уже ответили:

209
Один и тот же метод во многих Activity

Один и тот же метод во многих Activity

Недавно начал изучение java и android и решил написать приложениеЕсть некий метод loadData(List<Item> itemList);, который на вход принимает коллекцию

227
Включить редактирование только добавляемой новой строки JTable

Включить редактирование только добавляемой новой строки JTable

Здравствуйте! Для таблицы JTable поставил isCellEditable в false

250