Я создаю приложение для создания заметок, и в рамках действия после нажатия пункта меню «Добавить на главный экран» ярлык соответствующей операции успешно создается на главном экране.И после нажатия на ярлык снова открывается текстовая заметка с сохраненным заголовком и описанием заметки.Теперь проблема в том, что я хочу добавить заголовок заметки (созданный ярлык) в элемент расширяемого списка, который я использовал в макете ящика на основной деятельности.Я хочу, чтобы перед созданием или после создания ярлыка заметки / действия заголовок этой заметки должен был быть включен в расширяемый список.
Я попытался вручную добавить строку «Наука» в расширяемый список, который успешно выполнен..
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();
}
}
Теперь я просто хочу, чтобы заголовок, отображаемый как имя ярлыка на домашнем экране, также появлялся в расширяемом элементе списка вместо «Наука», который задается вручную.