relativelayout - Dynamically adding elements to android relative layout -


i having little problem relative layouts. i'm doing project in have read values .csv file , display them dynamically in relative layout. i'll put couple of code snippets , images , explain problem.

first code snippet:

package ekalavya.pratnala.quiz;  import java.io.bufferedreader; import java.io.file; import java.io.filereader; import java.util.stringtokenizer;  import android.app.activity; import android.os.bundle; import android.view.viewgroup.layoutparams; import android.widget.imageview; import android.widget.relativelayout; import android.widget.scrollview;  public class quizactivity extends activity { /** called when activity first created. */ @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.main);      // beginning of variable declarations     file quizspecs = new file("mnt/sdcard/teacher.csv"); // read file     bufferedreader csvreader = null;     string line = ""; // storing each line in string     stringtokenizer currentline = null;     int noofquestions = 0; // number of questions in quiz     int time = 0; // duration of quiz     int[][] quizdata; // storing quiz specifications in integer array     int = 0, j = 0; // loop variables     int[][] questionimages = {             { r.drawable.a, r.drawable.b, r.drawable.c, r.drawable.d,                     r.drawable.e, r.drawable.f, r.drawable.g, r.drawable.h,                     r.drawable.i, r.drawable.j },             { r.drawable.a_checked, r.drawable.b_checked,                     r.drawable.c_checked, r.drawable.d_checked,                     r.drawable.e_checked, r.drawable.f_checked,                     r.drawable.g_checked, r.drawable.h_checked,                     r.drawable.i_checked, r.drawable.j_checked },             { r.drawable.zero, r.drawable.one, r.drawable.two,                     r.drawable.three, r.drawable.four, r.drawable.five,                     r.drawable.six, r.drawable.seven, r.drawable.eight,                     r.drawable.nine },             { r.drawable.zero_checked, r.drawable.one_checked,                     r.drawable.two_checked, r.drawable.three_checked,                     r.drawable.four_checked, r.drawable.five_checked,                     r.drawable.six_checked, r.drawable.seven_checked,                     r.drawable.eight_checked, r.drawable.nine_checked } };     // end of variable declarations      try {         csvreader = new bufferedreader(new filereader(quizspecs));     } catch (exception e) {         // todo auto-generated catch block         e.printstacktrace();     }     try {         line = csvreader.readline();     } catch (exception e) {         // todo auto-generated catch block         e.printstacktrace();     }     currentline = new stringtokenizer(line, ",");     noofquestions = integer.parseint(currentline.nexttoken());     time = integer.parseint(currentline.nexttoken());     while (currentline.hasmoretokens())         ;     quizdata = new int[noofquestions][6];     (i = 0; < noofquestions; i++) {         try {             line = csvreader.readline();         } catch (exception e) {             // todo auto-generated catch block             e.printstacktrace();         }         currentline = new stringtokenizer(line, ",");         (j = 0; j < 6; j++) {             quizdata[i][j] = integer.parseint(currentline.nexttoken());         }     }     try {         csvreader.close();     } catch (exception e) {         // todo auto-generated catch block         e.printstacktrace();     }     scrollview s1 = new scrollview(this);     relativelayout r1 = new relativelayout(this);     (i = 0; < 2; i++) {         switch (quizdata[i][1]) {         case 1:         case 2:             (j = 0; j < quizdata[i][2]; j++) {                 imageview option = new imageview(this);                 option.setimageresource(questionimages[0][j]);                 option.setid(j + (10 * (i + 1)));                 relativelayout.layoutparams params = new relativelayout.layoutparams(                         relativelayout.layoutparams.wrap_content,                         relativelayout.layoutparams.wrap_content);                 params.addrule(relativelayout.right_of, j - 1                         + (10 * (i + 1)));                 option.setlayoutparams(params);                 r1.addview(option, params);             }             break;         }     }     s1.addview(r1, new layoutparams(layoutparams.fill_parent,             layoutparams.fill_parent));     this.setcontentview(s1); } } 

image 1: https://www.dropbox.com/s/vzpilyotvgtipbb/pic2.png

second code snippet:

package ekalavya.pratnala.quiz;  import java.io.bufferedreader; import java.io.file; import java.io.filereader; import java.util.stringtokenizer;  import android.app.activity; import android.os.bundle; import android.view.viewgroup.layoutparams; import android.widget.imageview; import android.widget.relativelayout; import android.widget.scrollview;  public class quizactivity extends activity { /** called when activity first created. */ @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.main);      // beginning of variable declarations     file quizspecs = new file("mnt/sdcard/teacher.csv"); // read file     bufferedreader csvreader = null;     string line = ""; // storing each line in string     stringtokenizer currentline = null;     int noofquestions = 0; // number of questions in quiz     int time = 0; // duration of quiz     int[][] quizdata; // storing quiz specifications in integer array     int = 0, j = 0; // loop variables     int[][] questionimages = {             { r.drawable.a, r.drawable.b, r.drawable.c, r.drawable.d,                     r.drawable.e, r.drawable.f, r.drawable.g, r.drawable.h,                     r.drawable.i, r.drawable.j },             { r.drawable.a_checked, r.drawable.b_checked,                     r.drawable.c_checked, r.drawable.d_checked,                     r.drawable.e_checked, r.drawable.f_checked,                     r.drawable.g_checked, r.drawable.h_checked,                     r.drawable.i_checked, r.drawable.j_checked },             { r.drawable.zero, r.drawable.one, r.drawable.two,                     r.drawable.three, r.drawable.four, r.drawable.five,                     r.drawable.six, r.drawable.seven, r.drawable.eight,                     r.drawable.nine },             { r.drawable.zero_checked, r.drawable.one_checked,                     r.drawable.two_checked, r.drawable.three_checked,                     r.drawable.four_checked, r.drawable.five_checked,                     r.drawable.six_checked, r.drawable.seven_checked,                     r.drawable.eight_checked, r.drawable.nine_checked } };     // end of variable declarations      try {         csvreader = new bufferedreader(new filereader(quizspecs));     } catch (exception e) {         // todo auto-generated catch block         e.printstacktrace();     }     try {         line = csvreader.readline();     } catch (exception e) {         // todo auto-generated catch block         e.printstacktrace();     }     currentline = new stringtokenizer(line, ",");     noofquestions = integer.parseint(currentline.nexttoken());     time = integer.parseint(currentline.nexttoken());     while (currentline.hasmoretokens())         ;     quizdata = new int[noofquestions][6];     (i = 0; < noofquestions; i++) {         try {             line = csvreader.readline();         } catch (exception e) {             // todo auto-generated catch block             e.printstacktrace();         }         currentline = new stringtokenizer(line, ",");         (j = 0; j < 6; j++) {             quizdata[i][j] = integer.parseint(currentline.nexttoken());         }     }     try {         csvreader.close();     } catch (exception e) {         // todo auto-generated catch block         e.printstacktrace();     }     scrollview s1 = new scrollview(this);     relativelayout r1 = new relativelayout(this);     (i = 0; < 1; i++) {         switch (quizdata[i][3]) {         case 1:         case 2:             (j = 0; j < quizdata[i][2]; j++) {                 imageview option = new imageview(this);                 option.setimageresource(questionimages[0][j]);                 option.setid(j + (10 * (i + 1)));                 relativelayout.layoutparams params = new relativelayout.layoutparams(                         relativelayout.layoutparams.wrap_content,                         relativelayout.layoutparams.wrap_content);                 params.addrule(relativelayout.right_of, j - 1                         + (10 * (i + 1)));                 option.setlayoutparams(params);                 r1.addview(option, params);             }             break;         }     }     s1.addview(r1, new layoutparams(layoutparams.fill_parent,             layoutparams.fill_parent));     this.setcontentview(s1); } } 

image 2: https://www.dropbox.com/s/itazcpshjzbza4t/pic1.png

when loop in switch case variable 'i' run once, second output comes. , if run twice, first output comes. that's not want. want first output row show below second output row. know wrong in code don't know how rectify it. please me! also, want know how place elements anywhere on screen.

p.s. haven't been allowed upload images because reputation less 10 (i'm newbie here). so, put them on dropbox , have put links here. sorry inconvenience.

i have solved this: specified right_of property before , hence didn't know place vertically , put @ top. specifying below property fixed issue.


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -