user2771059
user2771059

Reputation: 308

Grid layout does not display items

XML LAYOUT:

<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="wrap_content"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".WRActivity" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textView1"
            android:layout_centerHorizontal="true"
            android:text="Mahinda Electricals"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="25px" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:text="@string/title"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textSize="30px" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textView2"
            android:layout_marginTop="31dp"
            android:layout_toLeftOf="@+id/textView1"
            android:text="Number Of Fields"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="20px" />

        <EditText
            android:id="@+id/add_no_of_returns"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/textView3"
            android:layout_alignLeft="@+id/textView1"
            android:layout_marginLeft="22dp"
            android:ems="3"
            android:inputType="number" />

        <Button
            android:id="@+id/add_returns"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_alignBaseline="@+id/textView3"
            android:layout_alignBottom="@+id/textView3"
            android:layout_toRightOf="@+id/textView2"
            android:text="Add" />

        <GridLayout
            android:id="@+id/returnshow"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_below="@+id/add_returns"
            android:layout_marginTop="177dp"
            android:layout_toRightOf="@+id/button1"
            android:orientation="vertical" />

    </RelativeLayout>

Java Code:

 public class WRActivity extends Activity {
        Button add_returns;
        GridLayout show_warennt_returns;
        EditText serial_no;
        EditText reason;
        EditText no_of_returns;
        Button next;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_wr);
            add_returns = (Button) findViewById(R.id.add_returns);
            add_returns.setOnClickListener(oc);
            no_of_returns = (EditText) findViewById(R.id.add_no_of_returns);
            show_warennt_returns = (GridLayout) findViewById(R.id.returnshow);
    
        }
    
         
    
        OnClickListener oc = new OnClickListener() {
    
            @Override
            public void onClick(View v) {
    
                Add_text();
            }
        };
    
        public void Add_text() {
            for (int i = 0; i < Integer
                    .parseInt(no_of_returns.getText().toString()); i++) {
                GridLayout ll = new GridLayout(WRActivity.this);
                ll.setOrientation(GridLayout.HORIZONTAL);
                LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                ll.setColumnCount(2);
                ll.setRowCount(2);
    
                TextView serial = new TextView(WRActivity.this);
                serial.setText("Serial No");
                serial.setPadding(10, 10, 10, 10);
                serial.setTag("weight");
    
                ll.addView(serial);
    
                serial_no = new EditText(WRActivity.this);
                serial_no = new EditText(WRActivity.this);
                serial_no.setPadding(10, 10, 10, 10);
                serial_no.setWidth(300);
                serial_no.setTag("Product_ID");
                ll.addView(serial_no);
    
                TextView serial1 = new TextView(WRActivity.this);
                serial1.setText("Reason");
                serial1.setPadding(10, 10, 10, 10);
                serial1.setTag("weight");
                ll.addView(serial1);
    
                reason = new EditText(WRActivity.this);
                reason.setPadding(10, 10, 10, 10);
                reason.setTag("Product_ID");
                reason.setWidth(300);
                ll.addView(reason);
    
                show_warennt_returns.addView(ll);
            }
    
        }
    
         
    }

I have tried above code to show dynamically two text fields when the no of element is typed in a EditText.

It woks fine but if i type more than 10 it only shows only the first 10 only others are not displayed on the grid layout.

Upvotes: 2

Views: 2357

Answers (3)

Whats Going On
Whats Going On

Reputation: 1397

In Grid View You will Get as per the screen types or Grid View length and breadth..

if You want more than 10 which are dynamic.. You need to take a List View which will help you to display async or Dynamic data..

If you want to display them in Grid then you can try with Grid Lists

This will Work fine for any number of dynamic data.

you need to keep them inside a RelativeLayout or LinearLayout.. as per your required orientation..

if they are more than 10 and not displaying you need to Keep a Scroll View

For example You can Modify Your Code at here By Placing a Scroll view,.. like...enter image description here

Which may contains a Lineary layout.. if this not worked for Your Gridlayout You can use Listview OR GridList as i mentioned earlier

If You want only Grid you can use Grid List.. It works FIne..

Upvotes: 2

Cheerag
Cheerag

Reputation: 435

use below code for your layout.

<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="wrap_content"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".WRActivity" >
<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView1"
    android:layout_centerHorizontal="true"
    android:text="Mahinda Electricals"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textSize="25px" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:text="Title"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="30px" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView2"
    android:layout_marginTop="31dp"
    android:layout_toLeftOf="@+id/textView1"
    android:text="Number Of Fields"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textSize="20px" />

<EditText
    android:id="@+id/add_no_of_returns"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/textView3"
    android:layout_alignLeft="@+id/textView1"
    android:layout_marginLeft="22dp"
    android:ems="3"
    android:inputType="number" />

<Button
    android:id="@+id/add_returns"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="30dp"
    android:layout_alignBaseline="@+id/textView3"
    android:layout_alignBottom="@+id/textView3"
    android:layout_toRightOf="@+id/textView2"
    android:text="Add" />

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/add_returns"
    android:layout_marginTop="10dp" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <GridLayout
            android:id="@+id/returnshow"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_marginTop="20dp"
            android:columnCount="1"
            android:orientation="vertical" >
        </GridLayout>
    </LinearLayout>
</ScrollView>

Upvotes: 1

Pratik Butani
Pratik Butani

Reputation: 62421

Change GridLayout like:

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/add_returns"
    android:layout_toRightOf="@+id/button1" >

    <GridLayout
        android:id="@+id/returnshow"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_marginTop="177dp"
        android:orientation="vertical" />
</ScrollView>

Your whole XML is like:

<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="wrap_content"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".WRActivity" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_centerHorizontal="true"
        android:text="Mahinda Electricals"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textSize="25px" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="@string/title"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textSize="30px" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView2"
        android:layout_marginTop="31dp"
        android:layout_toLeftOf="@+id/textView1"
        android:text="Number Of Fields"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textSize="20px" />

    <EditText
        android:id="@+id/add_no_of_returns"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView3"
        android:layout_alignLeft="@+id/textView1"
        android:layout_marginLeft="22dp"
        android:ems="3"
        android:inputType="number" />

    <Button
        android:id="@+id/add_returns"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:layout_alignBaseline="@+id/textView3"
        android:layout_alignBottom="@+id/textView3"
        android:layout_toRightOf="@+id/textView2"
        android:text="Add" />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/add_returns"
        android:layout_toRightOf="@+id/button1" >

        <GridLayout
            android:id="@+id/returnshow"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_marginTop="177dp"
            android:orientation="vertical" />
    </ScrollView>

</RelativeLayout>

Upvotes: 1

Related Questions