0

I am working in this project where the user can customize their own pizza. What I want to accomplish is when the user dropped a topping to the pizza dough, a text will be displayed on the textview. For example: When the user dragged an ONION and dropped it on the pizza dough, the textview will display ONION. Same goes with the other toppings. I've done it though but it doesn't stack. Like, when I dropped an ONION and PEPPERONI, the textview goes

ONIONPEPPERONI

not

ONION
PEPPERONI

Here's the code. I don't know the right term for stacking the text so I can't explain it well.

public class MainActivity extends AppCompatActivity {

Button bCheese, bMoz, bOnion, bPatty, bPep, bGreenBell, bMush, bPine, bHam, bOlive, bBacon;
TextView txt;
ImageView image, image2, image3, image4, image5, image6, image7, image8, image9, image10, image11, image12;

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

    bCheese = (Button) findViewById(R.id.imageCheese);
    bMoz = (Button) findViewById(R.id.imageMoz);
    bOnion = (Button) findViewById(R.id.imageOnion);
    bPatty = (Button) findViewById(R.id.imagePatty);
    bPep = (Button) findViewById(R.id.imagePepperoni);
    bGreenBell = (Button) findViewById(R.id.imageGreen);
    bMush = (Button) findViewById(R.id.imageMush);
    bPine = (Button) findViewById(R.id.imagePine);
    bHam = (Button) findViewById(R.id.imageHam);
    bOlive = (Button) findViewById(R.id.imageOlive);
    bBacon = (Button) findViewById(R.id.imageBacon);


    txt = (TextView) findViewById(R.id.textView);
    image = (ImageView) findViewById(R.id.imageView);
    image2 = (ImageView) findViewById(R.id.imageView2);
    image3 = (ImageView) findViewById(R.id.imageView3);
    image4 = (ImageView) findViewById(R.id.imageView4);
    image5 = (ImageView) findViewById(R.id.imageView5);
    image6 = (ImageView) findViewById(R.id.imageView6);
    image7 = (ImageView) findViewById(R.id.imageView7);
    image8 = (ImageView) findViewById(R.id.imageView8);
    image9 = (ImageView) findViewById(R.id.imageView9);
    image10 = (ImageView) findViewById(R.id.imageView10);
    image11 = (ImageView) findViewById(R.id.imageView11);
    image12 = (ImageView) findViewById(R.id.imageView12);


    bCheese.setOnLongClickListener(longClickListener);
    bMoz.setOnLongClickListener(longClickListener);
    bOnion.setOnLongClickListener(longClickListener);
    bPatty.setOnLongClickListener(longClickListener);
    bPep.setOnLongClickListener(longClickListener);
    bGreenBell.setOnLongClickListener(longClickListener);
    bMush.setOnLongClickListener(longClickListener);
    bPine.setOnLongClickListener(longClickListener);
    bHam.setOnLongClickListener(longClickListener);
    bOlive.setOnLongClickListener(longClickListener);
    bBacon.setOnLongClickListener(longClickListener);

    image.setOnDragListener(dragListener);
}

View.OnLongClickListener longClickListener = new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        ClipData data = ClipData.newPlainText("","");
        View.DragShadowBuilder myShadowBuilder = new View.DragShadowBuilder(v);
        v.startDrag(data,myShadowBuilder,v,0);
        return true;
    }
};

View.OnDragListener dragListener = new View.OnDragListener() {
    @Override
    public boolean onDrag(View v, DragEvent event) {
        int dragEvent = event.getAction();

        final View view = (View) event.getLocalState();

        switch(dragEvent){
            case DragEvent.ACTION_DRAG_ENTERED:

                if (view.getId() == R.id.imageCheese){
                    image2.setImageResource(R.drawable.cheddarpic);
                }

                else if (view.getId() == R.id.imageMoz){
                    image3.setImageResource(R.drawable.mozarellapic);
                }

                else if (view.getId() == R.id.imageOnion){
                    image4.setImageResource(R.drawable.onionspic);
                }

                else if (view.getId() == R.id.imagePatty){
                    image5.setImageResource(R.drawable.pattiespic);
                }

                else if (view.getId() == R.id.imagePepperoni){
                    image6.setImageResource(R.drawable.pepperonipic);
                }

                else if (view.getId() == R.id.imageGreen){
                    image7.setImageResource(R.drawable.greenbellpic);
                }

                else if (view.getId() == R.id.imageMush){
                    image8.setImageResource(R.drawable.mushroomspic);
                }

                else if (view.getId() == R.id.imagePine){
                    image9.setImageResource(R.drawable.pineapplespic);
                }

                else if (view.getId() == R.id.imageHam){
                    image10.setImageResource(R.drawable.hampic);
                }

                else if (view.getId() == R.id.imageOlive){
                    image11.setImageResource(R.drawable.olivespic);
                }

                else if (view.getId() == R.id.imageBacon){
                    image12.setImageResource(R.drawable.baconpic);
                }

                Log.i("DRAG", "ACTION DRAG ENTERED");
                break;
            case DragEvent.ACTION_DRAG_EXITED:

                if (view.getId() == R.id.imageCheese){
                    image2.setImageResource(R.drawable.pizzadough);
                }

                else if (view.getId() == R.id.imageMoz){
                    image3.setImageResource(R.drawable.pizzadough);
                }

                else if (view.getId() == R.id.imageOnion){
                    image4.setImageResource(R.drawable.pizzadough);
                }

                else if (view.getId() == R.id.imagePatty){
                    image5.setImageResource(R.drawable.pizzadough);
                }

                else if (view.getId() == R.id.imagePepperoni){
                    image6.setImageResource(R.drawable.pizzadough);
                }

                else if (view.getId() == R.id.imageGreen){
                    image7.setImageResource(R.drawable.pizzadough);
                }

                else if (view.getId() == R.id.imageMush){
                    image8.setImageResource(R.drawable.pizzadough);
                }

                else if (view.getId() == R.id.imagePine){
                    image9.setImageResource(R.drawable.pizzadough);
                }

                else if (view.getId() == R.id.imageHam){
                    image10.setImageResource(R.drawable.pizzadough);
                }

                else if (view.getId() == R.id.imageOlive){
                    image11.setImageResource(R.drawable.pizzadough);
                }

                else if (view.getId() == R.id.imageBacon){
                    image12.setImageResource(R.drawable.pizzadough);
                }

                Log.i("DRAG", "ACTION DRAG EXITED");
                break;
            case DragEvent.ACTION_DROP:              
                if (view.getId() == R.id.imageCheese){
                    image2.setImageResource(R.drawable.cheddarpic);
                    txt.append("Cheddar Cheese");
                }

                else if (view.getId() == R.id.imageMoz){
                    image3.setImageResource(R.drawable.mozarellapic);
                    txt.append("Mozarella Cheese");
                }

                else if (view.getId() == R.id.imageOnion){
                    image4.setImageResource(R.drawable.onionspic);
                    txt.append("Onions");
                }

                else if (view.getId() == R.id.imagePatty){
                    image5.setImageResource(R.drawable.pattiespic);
                    txt.append("Patties");
                }

                else if (view.getId() == R.id.imagePepperoni){
                    image6.setImageResource(R.drawable.pepperonipic);
                    txt.append("Pepperoni");
                }

                else if (view.getId() == R.id.imageGreen){
                    image7.setImageResource(R.drawable.greenbellpic);
                    txt.append("Green Bell Peppers");
                }

                else if (view.getId() == R.id.imageMush){
                    image8.setImageResource(R.drawable.mushroomspic);
                    txt.append("Mushrooms");
                }

                else if (view.getId() == R.id.imagePine){
                    image9.setImageResource(R.drawable.pineapplespic);
                    txt.append("Pineapples");
                }

                else if (view.getId() == R.id.imageHam){
                    image10.setImageResource(R.drawable.hampic);
                    txt.append("Ham");
                }

                else if (view.getId() == R.id.imageOlive){
                    image11.setImageResource(R.drawable.olivespic);
                    txt.append("Olives");
                }

                else if (view.getId() == R.id.imageBacon){
                    image12.setImageResource(R.drawable.baconpic);
                    txt.append("Bacon");
                }
                break;
        }

        return true;
    }
};

}

1 Answers1

0

In your xml just use a linear layout with vertical orientation and set the visibility to gone. So when they drag the first textview on just set the visibility of the second textview to visible and set the text to pepperoni. I hope this helps

<LinearLayout
            android:layout_width="match_parent"
            android:orientation="vertical"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="wrap_content"
                android:text="Onion"
                android:layout_height="wrap_content" />
            <TextView
                android:layout_width="wrap_content"
                android:text="Pepperoni"
                android:visibility="gone"
                android:layout_height="wrap_content" />
        </LinearLayout>
SUPERUSER
  • 190
  • 7
  • This isn't going to be dynamic. I imagine there will be more than 2 options for toppings and it won't easily accommodate when more toppings are available in the future. And the OP is placing text in one TextView. Not using multiple TextViews. – codeMagic Apr 13 '17 at 14:26