SHARE
TWEET
Untitled
a guest
Sep 9th, 2018
94
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
- public class create extends AppCompatActivity {
- private LinearLayout mLinearLayout;
- private ArrayList<SearchableSpinner> mSpinners;
- private List<AppCompatButton> mButtons = new ArrayList<>();
- private List<CheckBox> mCheckboxes = new ArrayList<>();
- private List<TextView> mTextviews = new ArrayList<>();
- private List<EditText> mEdittexts = new ArrayList<>();
- private List<View> mViews = new ArrayList<>();
- private Map<String, String> numberItemValues = new HashMap<>();
- private Spinner spinner;
- private TextView textview;
- private CheckBox checkbox;
- List<String> itemList = new ArrayList<>();
- LinearLayout verticallayout,horizontalLayout;
- public static final String MY_PREFS_NAME = "MyPrefsFile";
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_create);
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- findViewById(R.id.my_linearLayout).requestFocus();
- verticallayout = findViewById(R.id.verticalLayout); //got
- //Arrays
- ArrayList<String> items = new ArrayList<>();
- items.add(String.valueOf(mSpinners)); // add you selected item
- mSpinners = new ArrayList<>();
- //Initializing Variables Here
- mLinearLayout = findViewById(R.id.my_linearLayout);
- //verticallayout = findViewById(R.id.verticalLayout);
- textview = findViewById(R.id.textview);
- checkbox = findViewById(R.id.checkbox);
- SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
- try {
- JSONArray jsonArray2 = new JSONArray(prefs.getString("key", null));
- for (int i = 0; i < jsonArray2.length(); i++) {
- final Spinner spinner = makeSpinner();
- mLinearLayout.addView(spinner);
- mSpinners.add((SearchableSpinner) spinner);
- final View newView = makeView();
- //Add a new view
- mLinearLayout.addView(newView);
- mViews.add(newView);
- final EditText newEdittext = makeEdittext();
- mLinearLayout.addView(newEdittext);
- mEdittexts.add(newEdittext);
- final CheckBox newCheckbox = makeCheckbox();
- mLinearLayout.addView(newCheckbox);
- //TODO add checkbox to your list
- mCheckboxes.add(newCheckbox);
- final TextView newTextview = makeTextview();
- mLinearLayout.addView(newTextview);
- mTextviews.add(newTextview);
- //TODO Add the spinner on item selected listener to get selected items
- spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
- String currentItem = itemList.get(position);
- String aisleNumber = numberItemValues.get(currentItem);
- //TODO you can use the above aisle number to add to your text view
- //mTextviews.get(mTextviews.size() -1).setText(aisleNumber);
- newTextview.setText(aisleNumber);
- }
- @Override
- public void onNothingSelected(AdapterView<?> parentView) {
- // do nothing
- }
- });
- final int listSize = mViews.size();
- //TODO DELETIN ITEM
- newView.setOnClickListener(new View.OnClickListener() {
- //start
- @Override
- public void onClick(View view) {
- //when the 'new button' is pressed, alert shows if you are sure you want to delete the item or not.
- final View.OnClickListener context = this;
- AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(create.this);
- // set title
- alertDialogBuilder.setTitle("Delete Item");
- // set dialog message
- alertDialogBuilder
- .setMessage("Are you sure you want to delete this item?")
- .setCancelable(false)
- .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- // if this button is clicked, close
- // current activity
- if (listSize > 0) {
- mCheckboxes.get(listSize - 1).setVisibility(View.GONE);
- mSpinners.get(listSize - 1).setVisibility(View.GONE);
- mViews.get(listSize - 1).setVisibility(View.GONE);
- mTextviews.get(listSize - 1).setVisibility(View.GONE);
- mEdittexts.get(listSize - 1).setVisibility(View.GONE);
- Toast.makeText(getBaseContext(), "Item removed.", Toast.LENGTH_SHORT).show();
- }
- }
- })
- .setNegativeButton("No", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- // if this button is clicked, just close
- // the dialog box and do nothing
- dialog.cancel();
- }
- });
- // create alert dialog
- AlertDialog alertDialog = alertDialogBuilder.create();
- // show it
- alertDialog.show();
- }
- });
- int positionOfSpinner = (int) jsonArray2.get(i);
- spinner.setSelection(positionOfSpinner);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- //end of shared pref code
- //TODO FAB BUTTON
- FloatingActionButton floatingActionButton =
- (FloatingActionButton) findViewById(R.id.fab);
- floatingActionButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Toast.makeText(getBaseContext(), "Item added!", Toast.LENGTH_SHORT).show();
- spinner = findViewById(R.id.spinner);
- // Handle ze click.
- final Spinner spinner = makeSpinner();
- mLinearLayout.addView(spinner);
- mSpinners.add((SearchableSpinner) spinner);
- LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) spinner.getLayoutParams();
- layoutParams.setMargins(5, 100, 10, 0); //top 70
- Resources resources = getResources();
- DisplayMetrics metrics = resources.getDisplayMetrics();
- layoutParams.height = (int) (70 * ((float) metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT)); //80
- layoutParams.width = (int) (240 * ((float) metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT)); //240
- spinner.setLayoutParams(layoutParams);
- final View newView = makeView();
- mLinearLayout.addView(newView);
- mViews.add(newView);
- final EditText newEdittext = makeEdittext();
- mLinearLayout.addView(newEdittext);
- mEdittexts.add(newEdittext);
- final int listSize = mViews.size();
- //code for deleting the said item.
- newView.setOnClickListener(new View.OnClickListener() {
- //start
- @Override
- public void onClick(View view) {
- //when the 'new button' is pressed, alert shows if you are sure you want to delete the item or not.
- final View.OnClickListener context = this;
- AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(create.this);
- // set title
- alertDialogBuilder.setTitle("Delete Item");
- // set dialog message
- alertDialogBuilder
- .setMessage("Are you sure you want to delete this item?")
- .setCancelable(false)
- .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- // if this button is clicked, close
- // current activity
- if (listSize > 0) {
- mCheckboxes.get(listSize - 1).setVisibility(View.GONE);
- mSpinners.get(listSize - 1).setVisibility(View.GONE);
- // mSpinners.remove(listSize - 1);
- mViews.get(listSize - 1).setVisibility(View.GONE);
- mTextviews.get(listSize - 1).setVisibility(View.GONE);
- mEdittexts.get(listSize - 1).setVisibility(View.GONE);
- Toast.makeText(getBaseContext(), "Item removed.", Toast.LENGTH_SHORT).show();
- }
- }
- })
- .setNegativeButton("No", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- // if this button is clicked, just close
- // the dialog box and do nothing
- dialog.cancel();
- }
- });
- // create alert dialog
- AlertDialog alertDialog = alertDialogBuilder.create();
- // show it
- alertDialog.show();
- }
- });
- //Add a new checkbox
- final CheckBox newCheckbox = makeCheckbox();
- mLinearLayout.addView(newCheckbox);
- //TODO add checkbox to your list
- mCheckboxes.add(newCheckbox);
- final TextView newTextview = makeTextview();
- mLinearLayout.addView(newTextview);
- mTextviews.add(newTextview);
- //TODO Add the spinner on item selected listener to get selected items
- spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
- String currentItem = itemList.get(position);
- String aisleNumber = numberItemValues.get(currentItem);
- //TODO you can use the above aisle number to add to your text view
- //mTextviews.get(mTextviews.size() -1).setText(aisleNumber);
- newTextview.setText(aisleNumber);
- }
- @Override
- public void onNothingSelected(AdapterView<?> parentView) {
- // code here, do nothing
- }
- });
- }
- });
- }
- //TODO OVERFLOW MENU
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.create_menu, menu);
- return true;
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- int id = item.getItemId();
- if (id == R.id.action_settings) {
- /*Intent startSettingsActivity = new Intent(this, AppCompatPreferenceActivity.class);
- startActivity(startSettingsActivity);
- //start the settings activity here.*/
- startActivity(new Intent(create.this, settings.class));
- return true;
- }
- else if (id == R.id.action_delete) {
- //code to delete list here.
- SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
- editor.clear();
- editor.commit();
- Toast.makeText(getBaseContext(), "List removed.", Toast.LENGTH_SHORT).show();
- return true;
- }
- else if (id ==R.id.action_help) {
- // setup the alert builder
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle("Help");
- builder.setMessage("To use this app, first go to Create your Shopping List.\n" +
- "Here, you can add items to your list. Once you have added all items, you can click the menu at the top right corner (or if it doesnt appear press your menu button beside your home button on your device, then click View your List.\n" +
- "This will take you to the screen where you can view you shopping list with the items in aisle order to make your shop much easier.\n" +
- "You can still add items at this point. Press the white background of each item to delete the item if you wish.");
- // add a button
- builder.setPositiveButton("OK", null);
- // create and show the alert dialog
- AlertDialog dialog = builder.create();
- dialog.show();
- return true;
- }
- else if (id == R.id.action_gotoview) {
- //takes the size of the list of spinners, for reference
- ArrayList<Integer> spinnerList = new ArrayList<>();
- for(int i = 0; i < mSpinners.size(); i++) {
- spinnerList.add(mSpinners.get(i).getSelectedItemPosition());
- }
- Bundle newBundle = new Bundle();
- newBundle.putIntegerArrayList("arraylist", spinnerList);
- Intent newIntent = new Intent(create.this, viewscreen.class);
- newIntent.putExtra("extraBundle", newBundle);
- startActivity(newIntent);
- //code to go to view screen, aka intent
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
- public void createRow(View view){
- createRow(); //got
- }
- private void createRow() { //got
- horizontalLayout = new LinearLayout(this);
- LinearLayout.LayoutParams horizontalParams = new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
- horizontalLayout.setOrientation(LinearLayout.HORIZONTAL);
- horizontalLayout.setLayoutParams(horizontalParams);
- makeEdittext();
- makeCheckbox();
- makeView();
- verticallayout.addView(horizontalLayout);
- }
- //DUPLICATING ITEMS WHEN FAB IS PRESSED//
- private CheckBox makeCheckbox() {
- //Create new Checkbox
- CheckBox checkbox = new CheckBox(this);
- // Setup layout
- LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.MATCH_PARENT,
- LinearLayout.LayoutParams.WRAP_CONTENT);
- //setup relative layout for the positioning of the objects
- Resources resources = getResources();
- DisplayMetrics metrics = resources.getDisplayMetrics();
- RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams((int) (70 * ((float) metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT)), (int) (240 * ((float) metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT)));
- relativeParams.addRule(RelativeLayout.RIGHT_OF, R.id.textview);
- checkbox.setLayoutParams(relativeParams);
- checkbox.setLayoutParams(layoutParams);
- /* LinearLayout.LayoutParams checkParams = new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
- checkParams.setMargins(10, 10, 10, 10);
- checkParams.gravity = Gravity.LEFT;
- checkbox.setLayoutParams(checkParams);
- horizontalLayout.addView(checkbox);*/
- return checkbox;
- }
- private TextView makeTextview() {
- //create new textview
- TextView textview = new TextView(this);
- //setup layout
- LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.MATCH_PARENT,
- LinearLayout.LayoutParams.WRAP_CONTENT);
- textview.setLayoutParams(layoutParams);
- textview.setTextSize(30);
- return textview;
- }
- private EditText makeEdittext() {
- //create new edittext
- EditText edittext = new EditText(this);
- //setup layout
- final LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(70, 50); // Width , height
- edittext.setLayoutParams(lparams);
- /* LinearLayout.LayoutParams editParams = new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
- editParams.setMargins(10, 10, 10, 10);*/
- lparams.width = 70;
- lparams.height = 50;
- edittext.setLayoutParams(lparams);
- /*
- edittext.setLayoutParams(editParams);
- horizontalLayout.addView(edittext);*/
- edittext.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);
- edittext.setHint("qty");
- return edittext;
- }
- private View makeView() {
- //create new View
- View view = new View(this);
- view.setBackgroundColor(Color.parseColor("#ffffff"));
- LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, 100);
- new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, 50);
- view.setLayoutParams(layoutParams);
- view.setClickable(true);
- //view.setLayoutParams(layoutParams);
- //setup layout
- return view;
- }
- private Spinner makeSpinner() {
- //opens csv
- InputStream inputStream = getResources().openRawResource(R.raw.shopitems);
- CSVFile csvFile = new CSVFile(inputStream);
- //TODO I made this variable global, declared it at the very top of this file
- itemList = csvFile.read();
- //Create new spinner
- // SearchableSpinner spinner = (SearchableSpinner) new Spinner(this, Spinner.MODE_DROPDOWN);
- SearchableSpinner spinner = new SearchableSpinner(this);
- // Setup layout
- /* LinearLayout.LayoutParams spinnerParams = new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
- spinnerParams.setMargins(10, 10, 10, 10);
- spinnerParams.gravity = Gravity.LEFT;
- Resources resources = getResources();
- DisplayMetrics metrics = resources.getDisplayMetrics();
- spinnerParams.height = (int) (70 * ((float) metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT)); //80
- spinnerParams.width = (int) (240 * ((float) metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT)); //240
- spinner.setLayoutParams(spinnerParams);
- horizontalLayout.addView(spinner);*/
- LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.MATCH_PARENT,
- LinearLayout.LayoutParams.WRAP_CONTENT);
- spinner.setLayoutParams(layoutParams);
- MyListAdapter adapter = new MyListAdapter(this, R.layout.listrow, R.id.txtid, itemList);
- spinner.setAdapter(adapter);
- //Add it to your list of spinners so you can retrieve their data when you click the getSpinner button
- //mSpinners.add(spinner);
- return spinner;
- }
- private class CSVFile {
- InputStream inputStream;
- public CSVFile(InputStream inputStream) {
- this.inputStream = inputStream;
- }
- public List<String> read() {
- List<String> resultList = new ArrayList<String>();
- BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
- try {
- String line;
- while ((line = reader.readLine()) != null) {
- String[] row = line.split(",");
- //TODO I edited this part so that you'd add the values in our new hash map variable
- numberItemValues.put(row[1], row[0]);
- resultList.add(row[1]);
- }
- } catch (IOException e) {
- Log.e("Main", e.getMessage());
- } finally {
- try {
- inputStream.close();
- } catch (IOException e) {
- Log.e("Main", e.getMessage());
- }
- }
- return resultList;
- }
- }
- //on stop, the things are saved into shared prefs
- @Override
- protected void onStop () {
- //public static final String MY_PREFS_NAME = "MyPrefsFile";
- SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
- JSONArray jsonArray = new JSONArray();
- for(int i = 0; i < mSpinners.size(); i++) {
- jsonArray.put(mSpinners.get(i).getSelectedItemPosition());
- }
- editor.putString("key", jsonArray.toString());
- editor.apply();
- super.onStop();
- }
- }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.
