这是片段本身的代码:
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文件的片段中缺少的内容,以便它可以像在主要活动上一样工作。