1

I have two options in my payment get way i.e. Credit Card and E-Check. When I select the Credit Card, the layout should show something like this The layout when the credit card is selected

The problem is when I select the E-Check the layout shows something like this, The layout after I select the e-c

What I want is to remove the gap between the radio buttons and the contents after I click the E-Check option and show the E-Check contents in the same place where the credit card shows its contents. It would be more helpful if the get to know how to show nothing when nothing is selected.

Layout.xml

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true">

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="1000dp"
    android:background="@color/whitecolor"

    tools:context=".Payment">


    <ImageView
        android:id="@+id/layout"
        android:layout_width="150dp"
        android:layout_height="120dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="5dp"
        android:background="#FFF"
        android:src="@drawable/logo" />


    <LinearLayout
        android:id="@+id/linearLayout3"
        android:layout_width="300dp"
        android:layout_height="60dp"
        android:layout_alignEnd="@+id/linearLayout2"
        android:layout_alignStart="@+id/linearLayout2"
        android:layout_below="@+id/linearLayout2">

        <TextView
            android:id="@+id/paymentduedate"
            android:layout_width="117dp"
            android:layout_height="18dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="30dp"
            android:text="Payment Date"
            android:textColor="@color/menucolor"
            android:textSize="15dp"
            android:textStyle="bold" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:layout_marginLeft="10dp">


            <EditText
                android:id="@+id/txtpaymentmonth"
                android:layout_width="100dp"
                android:layout_height="40dp"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="10dp"
                android:ems="10"
                android:hint="MM"
                android:inputType="number"
                android:paddingTop="10dp"
                android:textColorHint="@color/menucolor" />

            <EditText
                android:id="@+id/txtpaymentyear"
                android:layout_width="100dp"
                android:layout_height="40dp"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="10dp"
                android:layout_weight="1"
                android:ems="10"
                android:hint="YYYY"
                android:inputType="number"
                android:textColorHint="@color/menucolor" />
        </LinearLayout>


    </LinearLayout>


    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="300dp"
        android:layout_height="70dp"
        android:layout_alignParentEnd="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/layout"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_marginTop="22dp"
        android:weightSum="1">


        <TextView
            android:id="@+id/paymentamount"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="40dp"
            android:text="Payment Amount"
            android:textColor="@color/menucolor"
            android:textSize="15dp"
            android:textStyle="bold" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"
            android:orientation="horizontal"
            android:weightSum="1">

            <EditText
                android:id="@+id/txtpaymentamount"
                android:layout_width="192dp"
                android:layout_height="40dp"
                android:layout_marginBottom="5dp"
                android:layout_marginEnd="5dp"
                android:layout_marginRight="20dp"
                android:layout_marginStart="10dp"
                android:layout_marginTop="16dp"
                android:layout_weight="0.39"
                android:ems="10"
                android:hint="00.0"
                android:inputType="number"
                android:paddingRight="10dp"
                android:textColorHint="@color/menucolor" />
        </LinearLayout>


    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout4"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_alignEnd="@+id/linearLayout3"
        android:layout_alignStart="@+id/linearLayout3"
        android:layout_below="@+id/linearLayout3"
        android:orientation="horizontal"
        android:weightSum="1">

        <TextView
            android:id="@+id/paymentvia"
            android:layout_width="117dp"
            android:layout_height="18dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="25dp"
            android:text="Payment Via"
            android:textColor="@color/menucolor"
            android:textSize="15dp"
            android:textStyle="bold" />

        <RadioGroup
            android:id="@+id/radioGroup1"
            android:layout_width="225dp"
            android:layout_height="match_parent"
            android:layout_marginEnd="5dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="10dp"
            android:orientation="horizontal"
            android:paddingBottom="15dp"
            android:paddingLeft="5dp"
            android:paddingStart="1dp"
            android:weightSum="2">

            <RadioButton
                android:id="@+id/rdocreditcard"
                android:layout_width="wrap_content"
                android:layout_height="30dp"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="10dp"
                android:text="Credit card"
                android:textColor="@color/menucolor" />

            <RadioButton
                android:id="@+id/rdoEcheck"
                android:layout_width="match_parent"
                android:layout_height="30dp"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="10dp"
                android:paddingEnd="5dp"
                android:text="E-Check"
                android:textColor="@color/menucolor" />
        </RadioGroup>

    </LinearLayout>



    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_alignEnd="@+id/linearLayout4"
        android:layout_alignStart="@+id/linearLayout4"
        android:layout_below="@+id/linearLayout4"
        android:orientation="horizontal"
        android:weightSum="1">


        <EditText
            android:id="@+id/txtcreaditcardnumber"
            android:layout_width="181dp"
            android:layout_height="40dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:layout_weight="0.91"
            android:ems="10"
            android:hint="Credit Card Number"
            android:inputType="number"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:textColorHint="@color/menucolor" />


        <!--
        <EditText
            android:id="@+id/expmonth"
            android:layout_width="61dp"
            android:layout_height="40dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="10dp"
            android:ems="10"
            android:hint="MM"
            android:inputType="number"
            android:textColorHint="@color/menucolor" />

        <EditText
            android:id="@+id/expyear"
            android:layout_width="61dp"
            android:layout_height="40dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="10dp"
            android:layout_weight="0.17"
            android:ems="10"
            android:hint="YYYY"
            android:inputType="number"
            android:textColorHint="@color/menucolor" />

        <EditText
            android:layout_width="61dp"
            android:layout_height="40dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="10dp"
            android:hint="CCV"
            android:textColorHint="@color/menucolor"
            />

            -->

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout5"
        android:layout_width="200dp"
        android:layout_height="60dp"
        android:layout_alignEnd="@+id/linearLayout"
        android:layout_alignStart="@+id/linearLayout"
        android:layout_below="@+id/linearLayout">

        <EditText
            android:id="@+id/txtexpirymonth"
            android:layout_width="150dp"
            android:layout_height="40dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="10dp"
            android:layout_weight="0.00"
            android:ems="10"
            android:hint="MM"
            android:inputType="number"
            android:textColorHint="@color/menucolor" />

        <EditText
            android:id="@+id/txtexpiryyear"
            android:layout_width="150dp"
            android:layout_height="40dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="10dp"
            android:ems="10"
            android:hint="YYYY"
            android:inputType="number"
            android:textColorHint="@color/menucolor" />

        <EditText
            android:id="@+id/txtexpiryyear"
            android:layout_width="61dp"
            android:layout_height="40dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="10dp"
            android:hint="CCV"
            android:textColorHint="@color/menucolor" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout6"
        android:layout_width="200dp"
        android:layout_height="60dp"
        android:layout_alignEnd="@+id/linearLayout5"
        android:layout_alignStart="@+id/linearLayout5"
        android:layout_below="@+id/linearLayout5">

        <EditText
            android:id="@+id/txtfirstname"
            android:layout_width="145dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:layout_weight="0.11"
            android:ems="10"
            android:hint="First Name"
            android:inputType="textPersonName"
            android:textColorHint="@color/menucolor" />

        <EditText
            android:id="@+id/txtlname"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="7dp"
            android:layout_marginTop="10dp"
            android:layout_weight="0.81"
            android:ems="10"
            android:hint="Last Name"
            android:inputType="textPersonName"
            android:textColorHint="@color/menucolor" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="200dp"
        android:layout_height="60dp"
        android:layout_below="@+id/linearLayout6"
        android:layout_alignStart="@+id/linearLayout6"
        android:layout_alignEnd="@+id/linearLayout6"
        android:id="@+id/linearLayout7">

        <EditText
            android:id="@+id/txtaddress"
            android:layout_width="149dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:ems="10"
            android:hint="Address"
            android:inputType="textPersonName"
            android:textColorHint="@color/menucolor" />

        <EditText
            android:id="@+id/txtcity"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="10dp"
            android:layout_weight="1"
            android:ems="10"
            android:hint="City"
            android:inputType="textPersonName"
            android:textColorHint="@color/menucolor" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="200dp"
        android:layout_height="60dp"
        android:layout_below="@+id/linearLayout7"
        android:layout_alignStart="@+id/linearLayout7"
        android:layout_alignEnd="@+id/linearLayout7"
        android:weightSum="1"
        android:id="@+id/linearLayout8">


        <EditText
            android:id="@+id/txtstate"
            android:layout_width="101dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:ems="10"
            android:inputType="textPersonName"
            android:hint="State"
            android:textColorHint="@color/menucolor"/>

        <EditText
            android:id="@+id/txtzipcode"
            android:layout_width="118dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:ems="10"
            android:inputType="textPersonName"

            android:hint="Zip code"
            android:textColorHint="@color/menucolor"/>

        <EditText
            android:id="@+id/txtcountry"
            android:layout_width="118dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:ems="10"
            android:inputType="textPersonName"

            android:hint="Country"
            android:textColorHint="@color/menucolor"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="200dp"
        android:layout_height="60dp"
        android:weightSum="1"
        android:layout_below="@+id/linearLayout8"
        android:layout_alignStart="@+id/linearLayout8"
        android:layout_alignEnd="@+id/linearLayout8"
        android:id="@+id/linearLayout9">

        <EditText
            android:id="@+id/txtabaroutingnumber"
            android:layout_width="186dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:ems="10"
            android:inputType="number"
            android:hint="ABA Routing Number"
            android:textColorHint="@color/menucolor"
            android:layout_weight="0.05" />

        <EditText
            android:id="@+id/txtaccountnumber"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:layout_marginTop="10dp"
            android:layout_weight="0.84"
            android:ems="10"
            android:hint="Account Number"
            android:inputType="number"
            android:textColorHint="@color/menucolor" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="200dp"
        android:layout_height="60dp"
        android:weightSum="1"
        android:layout_below="@+id/linearLayout9"
        android:layout_alignStart="@+id/linearLayout9"
        android:layout_alignEnd="@+id/linearLayout9"
        android:id="@+id/linearLayout10">

        <EditText
            android:id="@+id/txtbankname"
            android:layout_width="186dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:ems="10"
            android:inputType="number"
            android:hint="Bank Name"
            android:textColorHint="@color/menucolor"
            android:layout_weight="0.05" />

        <EditText
            android:id="@+id/txtaccountname"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:layout_marginTop="10dp"
            android:layout_weight="0.84"
            android:ems="10"
            android:hint="Account Name"
            android:inputType="number"
            android:textColorHint="@color/menucolor" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="200dp"
        android:layout_height="60dp"
        android:weightSum="1"
        android:layout_below="@+id/linearLayout10"
        android:layout_alignStart="@+id/linearLayout10"
        android:layout_alignEnd="@+id/linearLayout10">

        <EditText
            android:id="@+id/txtaccounttype"
            android:layout_width="186dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:ems="10"
            android:inputType="number"
            android:hint="Account Type"
            android:textColorHint="@color/menucolor"
            android:layout_weight="0.05" />

        <EditText
            android:id="@+id/txtechecktype"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:layout_marginTop="10dp"
            android:layout_weight="0.84"
            android:ems="10"
            android:hint="E-Check Type"
            android:inputType="number"
            android:textColorHint="@color/menucolor" />

    </LinearLayout>




</RelativeLayout>
</ScrollView>

Payment.java

public class Payment extends AppCompatActivity {

EditText paymentAmount, paymentDateMonth, paymentDateYear, creditCardNumber, expiryDateMonth,
    expirydateYear, ccv, firstName, lastName, address, city, state, zipCode, county,
    abaRoutingNumber, accountNumber, bankName, accountName, accountType, echeckType;

RadioGroup radioGroup1;


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

    paymentAmount = (EditText) findViewById(R.id.txtpaymentamount);
    paymentDateMonth = (EditText) findViewById(R.id.txtpaymentmonth);
    paymentDateYear = (EditText) findViewById(R.id.txtpaymentyear);

    //creadit card
    creditCardNumber = (EditText) findViewById(R.id.txtcreaditcardnumber);
    expiryDateMonth = (EditText) findViewById(R.id.txtexpirymonth);
    expirydateYear = (EditText) findViewById(R.id.txtexpiryyear);
    ccv = (EditText) findViewById(R.id.txtccv);
    firstName = (EditText) findViewById(R.id.txtfirstname);
    lastName = (EditText) findViewById(R.id.txtlname);
    address = (EditText) findViewById(R.id.txtaddress);
    city = (EditText) findViewById(R.id.txtcity);
    state = (EditText) findViewById(R.id.txtstate);
    zipCode = (EditText) findViewById(R.id.txtzipcode);
    county = (EditText) findViewById(R.id.txtcountry);

    //E-check
    abaRoutingNumber = (EditText) findViewById(R.id.txtabaroutingnumber);
    accountNumber = (EditText) findViewById(R.id.txtaccountnumber);
    bankName = (EditText) findViewById(R.id.txtbankname);
    accountName = (EditText) findViewById(R.id.txtaccountname);
    accountType = (EditText) findViewById(R.id.txtaccounttype);
    echeckType = (EditText) findViewById(R.id.txtechecktype);

    radioGroup1 = (RadioGroup) findViewById(R.id.radioGroup1);

    radioGroup1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
            if (checkedId == R.id.rdocreditcard){
                creditCardNumber.setVisibility(View.VISIBLE);
                expiryDateMonth.setVisibility(View.VISIBLE);
                expirydateYear.setVisibility(View.VISIBLE);
                ccv.setVisibility(View.VISIBLE);
                firstName.setVisibility(View.VISIBLE);
                lastName.setVisibility(View.VISIBLE);
                address.setVisibility(View.VISIBLE);
                city.setVisibility(View.VISIBLE);
                state.setVisibility(View.VISIBLE);
                zipCode.setVisibility(View.VISIBLE);
                county.setVisibility(View.VISIBLE);

                abaRoutingNumber.setVisibility(View.INVISIBLE);
                accountNumber.setVisibility(View.INVISIBLE);
                bankName.setVisibility(View.INVISIBLE);
                accountName.setVisibility(View.INVISIBLE);
                accountType.setVisibility(View.INVISIBLE);
                echeckType.setVisibility(View.INVISIBLE);
            }
            else {
                creditCardNumber.setVisibility(View.INVISIBLE);
                expiryDateMonth.setVisibility(View.INVISIBLE);
                expirydateYear.setVisibility(View.INVISIBLE);
                ccv.setVisibility(View.INVISIBLE);
                firstName.setVisibility(View.INVISIBLE);
                lastName.setVisibility(View.INVISIBLE);
                address.setVisibility(View.INVISIBLE);
                city.setVisibility(View.INVISIBLE);
                state.setVisibility(View.INVISIBLE);
                zipCode.setVisibility(View.INVISIBLE);
                county.setVisibility(View.INVISIBLE);

                abaRoutingNumber.setVisibility(View.VISIBLE);
                accountNumber.setVisibility(View.VISIBLE);
                bankName.setVisibility(View.VISIBLE);
                accountName.setVisibility(View.VISIBLE);
                accountType.setVisibility(View.VISIBLE);
                echeckType.setVisibility(View.VISIBLE);



            }
        }
    });

}

}

Kuldeep Kulkarni
  • 796
  • 5
  • 20
TheSwiftGuy77
  • 656
  • 1
  • 9
  • 25
  • you should implement both layouts at the same place and set the visibility according to the radio button click – sumit Jun 21 '17 at 09:41

4 Answers4

1

Don't know why people are giving you such stupid answers. Try this simple thing:

In your layout code change this:

Just below your Radio button layout make two layout like this:

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_alignStart="@+id/linearLayout4"
            android:layout_below="@+id/linearLayout4"
            android:layout_alignEnd="@+id/linearLayout4"
            android:id="@+id/creditcard_layout">
//copy your credit card layout here
</LinearLayout>
<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:visibility="gone"
            android:layout_alignEnd="@+id/linearLayout4"
            android:layout_alignStart="@+id/linearLayout4"
            android:layout_below="@+id/linearLayout4"
            android:id="@+id/echeck_layout">

//copy your ecard card layout here
</LinearLayout>

and then in your code on radio button click show the respective layout.Apart from this you don't have to change anything else.

Hope it'll help you.

sumit
  • 1,047
  • 1
  • 10
  • 15
0

Use View.GONE instead of View.INVISIBLE

View.INVISIBLE:

This view is invisible, but it still takes up space for layout purposes.

View.GONE:

This view is invisible, and it doesn't take any space for layout purposes.

Upendra Shah
  • 2,218
  • 17
  • 27
-1

You should play with view attribute View.GONE and View.VISIBLE to make layouts appear/disappear correctly.

Daniel Luque
  • 116
  • 1
  • 8
-1

You can use two FrameLayout inside of RelativeLayout. Insert all views related to credit card in first & other into second FrameLayout. Then manage click event with View.GONE and View.VISIBLE

Kuldeep Kulkarni
  • 796
  • 5
  • 20