如何将片段与其各自的.xml菜单文件链接?

时间:2020-04-16 16:13:26

标签: android

这是片段本身的代码:

public class SlideshowFragment extends Fragment {

    private SlideshowViewModel listacompraViewModel;
    ArrayList<String> shoppingList = null;
    ArrayAdapter adapter = null;
    ListView lv =null;

    public View onCreateView(@NonNull LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {
        listacompraViewModel =
                ViewModelProviders.of(this).get(SlideshowViewModel.class);
        View root = inflater.inflate(R.layout.fragment_slideshow, container, false);
        final TextView textView = root.findViewById(R.id.text_listacompra);
        listacompraViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
            @Override
            public void onChanged(@Nullable String s) {
                textView.setText(s);
            }
        });


        shoppingList = new ArrayList<>();
        Collections.addAll(shoppingList, "Ovos", "Iogurte", "Bananas");
        shoppingList.addAll(Arrays.asList("Guardanapos", "Comida para cão", "Batom"));
        shoppingList.add("Protetor solar");
        shoppingList.add("Pasta de dentes");
        shoppingList.add("Aerius");
        shoppingList.add("Carne");
        shoppingList.add("Peixe");
        shoppingList.add("Hortaliça");
        shoppingList.add("Arroz");
        shoppingList.add("Salsichas");
        adapter = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, shoppingList);
        lv = (ListView) root.findViewById(R.id.listView);
        lv.setAdapter(adapter);
        return root;

    }

   @Override
    public boolean onOptionsItemSelected(MenuItem item){
        int id = item.getItemId();

        if(id == R.id.action_settings) {
            return true;
        }
        if(id == R.id.action_add){
            AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
            builder.setTitle("Adicionar Item");
            final EditText input = new EditText(getContext());
            builder.setView(input);
            builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    shoppingList.add((input.getText().toString()));
                    Collections.sort(shoppingList);
                    lv.setAdapter(adapter);
                }
            });
            builder.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            });
            builder.show();
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

这是我试图打开按钮的片段上的代码,以便在ListView上添加更多项。 我的问题是,如果我将其放在购物清单菜单xml文件中,则根本不会显示它,但是如果将其更改为主要活动,它会在所有地方显示,这是我不希望的:

<item android:id="@+id/action_add"
        android:icon="@drawable/baseline_add_circle_outline_white_48"
        android:title="@string/action_add"
        app:showAsAction="ifRoom"/>

因此,我需要一些帮助来查找将片段链接到.xml文件的片段中缺少的内容,以便它可以像在主要活动上一样工作。

0 个答案:

没有答案
相关问题