Как добавить созданные ярлыки другого действия в расширяемый список, показанный в макете ящика - PullRequest
0 голосов
/ 03 июня 2019

Я создаю приложение для создания заметок, и в рамках действия после нажатия пункта меню «Добавить на главный экран» ярлык соответствующей операции успешно создается на главном экране.И после нажатия на ярлык снова открывается текстовая заметка с сохраненным заголовком и описанием заметки.Теперь проблема в том, что я хочу добавить заголовок заметки (созданный ярлык) в элемент расширяемого списка, который я использовал в макете ящика на основной деятельности.Я хочу, чтобы перед созданием или после создания ярлыка заметки / действия заголовок этой заметки должен был быть включен в расширяемый список.

Я попытался вручную добавить строку «Наука» в расширяемый список, который успешно выполнен..


public class MainScreen extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, View.OnTouchListener, AdapterView.OnItemSelectedListener, SearchView.OnQueryTextListener {

    private DrawerLayout mDrawerLayout;
    ExpandableListAdapter mMenuAdapter;
    ExpandableListView expandableList;
    List<ExpandedMenuModel> listDataHeader;
    HashMap<ExpandedMenuModel, List<String>> listDataChild;

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_screen);

mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout_main);
        expandableList = (ExpandableListView) findViewById(R.id.navigationmenu);

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);

  if (navigationView != null) {
            setupDrawerContent(navigationView);
        }
prepareListData();
mMenuAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild, expandableList);

        // setting list adapter
        expandableList.setAdapter(mMenuAdapter);

        expandableList.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
            @Override
            public boolean onChildClick(ExpandableListView expandableListView, View view, int i, int i1, long l) {
                //Log.d("DEBUG", "submenu item clicked");
                return false;
            }
        });
        expandableList.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
            @Override
            public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) {
                //Log.d("DEBUG", "heading clicked");
                return false;
            }
        });
  private void prepareListData() {
        listDataHeader = new ArrayList<ExpandedMenuModel>();
        listDataChild = new HashMap<ExpandedMenuModel, List<String>>();

        ExpandedMenuModel item1 = new ExpandedMenuModel();
        item1.setIconName("Shortcut(s)");
        item1.setIconImg(R.drawable.ic_shortcut);
        // Adding data header
        listDataHeader.add(item1);


        // Adding child data
        List<String> heading1 = new ArrayList<String>();
        heading1.add("Science");


        listDataChild.put(listDataHeader.get(0), heading1);// Header, Child data


    }

}
}


public class TextNotes extends AppCompatActivity implements View.OnTouchListener, AdapterView.OnItemSelectedListener {
private DrawerLayout drawer;//contains menu item for creating shortcut of this activity
@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_text_notes);
drawer = findViewById(R.id.drawerText); 
  NavigationView nav=findViewById(R.id.nav_view_text);

nav.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
                menuItem.setChecked(true);
                switch (menuItem.getItemId())
                {
                        case R.id.text_drawer_home:
                        createShortcutOfActivity();
                        break;
}
}
});

}
private void createShortcutOfActivity() {

        Intent shortcutIntent = new Intent(getApplicationContext(),
                TextNotes.class);
        shortcutIntent.setAction(Intent.ACTION_MAIN);
//        Toast.makeText(this, ""+Id, Toast.LENGTH_SHORT).show();
        shortcutIntent.putExtra("key_primary",Id);
        Intent addIntent = new Intent();
        addIntent
                .putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, editTitle.getText().toString());
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
                Intent.ShortcutIconResource.fromContext(getApplicationContext(),
                        R.mipmap.ic_launcher));
//        addIntent.putExtra("key_primarykey",Id);

        addIntent
                .setAction("com.android.launcher.action.INSTALL_SHORTCUT");
        addIntent.putExtra("duplicate", false);  //may it's already there so   don't duplicate
        getApplicationContext().sendBroadcast(addIntent);
        Toast.makeText(this, "Shortcut added to Home Screen", Toast.LENGTH_SHORT).show();

    }
}

Теперь я просто хочу, чтобы заголовок, отображаемый как имя ярлыка на домашнем экране, также появлялся в расширяемом элементе списка вместо «Наука», который задается вручную.

...