Android fragments and creating widgets dynamically -


this perhaps 1 of simpler problems on here, new android,so still having challenges.i downloading data mysql server using json.-a list of questions.each question created on own fragment depending on total number of questions.i display different widgets-edittext,radiobutton,spinner etc depending on specified question.

problem 1

my challenge that,i cannot seem text values entered into/selected these widgets.this works in different activities of application,but fragment class issues.

problem 2

i trying positions of each question,from can display next/back buttons appropriately.e.g if @ 1st que,hide button,if @ end,hide next , display done.something that.my current implementation works if don't press button view previous question.if do,then button done is't displayed when last item,but still shows 'next'

problem 3

i tried inserting checks input fields.e.g if user clicks next without entering anything,display toast , not move next item.but mine still goes next page,and displays toast msg "response required" kindly me see doing wrong in implementation.thanks

my relevant code below

**fragmentstatepageradapter class**  public class pageradapter extends fragmentstatepageradapter {      public sqlitedatabase db;      public pageradapter adapter;      question question;      context context2;      public pageradapter(context c, fragmentmanager fm) {         super(fm);         this.context2 = c;     }      @override     public int getcount() {         system.out.println("inside count");          return questions.size(); // number of pages displayed     }      @override     public fragment getitem(int i) {         log.i("at pageradapter", "yaaay!!at pager adapter");          fragment fragment = null;          question que = questions.get(i); //questions arraylist has been     populated question objects server.          // pass value displayed in inflated view          fragment = new fragmentradiobutton(context2, que);          return fragment;      }      public charsequence getpagetitle(int position) {          position++;         string s = "question  " + position;// setting title          return s;     }  } 

the fragment class

public class fragmentradiobutton extends fragment { context context3; private question question; private radiobutton[] radiobutton; private relativelayout relativelayout1; static viewpager mviewpager = fragmentstatepageractivity.mviewpager; private textview question_txtview; private radiogroup radiogroup; private button btnnext; private spinner spinner; private ratingbar ratingbar; private button btnback; private edittext edittext; private button btndone; private textview countrating_txt; private relativelayout relativelayout2; private static final int radio_button = 1;  private static final int m_spinner = 2;  private static final int edit_text = 3;  private static final int rating_bar = 4; public static arraylist<integer> num = new arraylist<integer>();  private list<radiogroup> allradiogroups = new arraylist<radiogroup>();  private list<spinner> allspinners = new arraylist<spinner>();  private list<edittext> alleds = new arraylist<edittext>();  list<ratingbar> allratingbars = new arraylist<ratingbar>();  public fragmentradiobutton() {  }  public fragmentradiobutton(context c, question que) {     this.context3 = c;      this.question = que; } //@suppresslint("newapi") @override public view oncreateview(layoutinflater inflater, viewgroup container,         bundle savedinstancestate) {     super.oncreate(savedinstancestate); view view = getactivity().getlayoutinflater().inflate(             r.layout.fragment_radio_button, null);      scrollview scrollview = (scrollview) view             .findviewbyid(r.id.scrollviewradiobutton);      relativelayout1 = (relativelayout) scrollview             .findviewbyid(r.id.relativelayout1);     relativelayout2 = (relativelayout) relativelayout1             .findviewbyid(r.id.relativelayout2);     context3 = getactivity().getapplicationcontext(); try { question_txtview = (textview) relativelayout1                 .findviewbyid(r.id.question_text_radio_button);         question_txtview.settext(question.getdescription()); num.add(question.getquestionid()); if (question.getwidgetid() == radio_button) {              radiogroup.setvisibility(view.visible);              radiobutton = new radiobutton[question.getanswers().size()];              typeface font4 = typeface.createfromasset(getactivity()                     .getassets(), "fonts/enriqueta/enriqueta-regular.otf");              (int = 0; < question.getanswers().size(); i++) {                  radiobutton[i] = new radiobutton(context3);                 radiobutton[i].setlines(3);                 radiobutton[i].settext(question.getanswers().get(i)                         .getanswer_text());                 radiobutton[i].settag(question.getanswers().get(i)                         .getanswer_id());                 radiobutton[i].settextcolor(color.black);                 radiobutton[i].settypeface(font4);                 radiobutton[i].settextsize(30);                  radiogroup.addview(radiobutton[i]);                 radiogroup.isclickable(); }              allradiogroups.add(radiogroup);          } else if (question.getwidgetid() == m_spinner) {              spinner.setvisibility(view.visible);  list<string> list = new arraylist<string>();             (int b = 0; b < question.getanswers().size(); b++) {                  string data = question.getanswers().get(b).getanswer_text()                         .tostring();                  spinner.settag(question.getanswers().get(b).getanswer_id());                  list.add(data);             }              arrayadapter<string> dataadapter = new arrayadapter<string>(                     context3, r.layout.my_style, list) {                  public view getview(int position, view convertview,                         viewgroup parent) {                     view v = super.getview(position, convertview, parent);                     ((textview) v).settextsize(22);                      return v;                 }                  public view getdropdownview(int position, view convertview,                         viewgroup parent) {                     view v = super.getdropdownview(position, convertview,                             parent);                      ((textview) v).settextcolor(color.black);                     return v;                 }             };              spinner.setadapter(dataadapter);              allspinners.add(spinner);          } else if (question.getwidgetid() == edit_text) {             edittext.setvisibility(view.visible);              alleds.add(edittext);          } else if (question.getwidgetid() == rating_bar) {              ratingbar.setvisibility(view.visible);              countrating_txt.setvisibility(view.visible);              ratingbar                     .setonratingbarchangelistener(new onratingbarchangelistener() {                          public void onratingchanged(ratingbar rating_bar,                                 float rating, boolean fromuser) {                              rating = rating_bar.getrating();                              countrating_txt.settext(string.valueof(rating)                                     + "ratings");                          }                     });              allratingbars.add(ratingbar);          }          // }      } catch (exception e) {          log.e("log error :",                 "could not write text views in radiobutton fragment");      } itemposition();      return view; } onclicklistener btnnextonclicklistener = new onclicklistener() {      @override     public void onclick(view v) {          if (question.getwidgetid() == radio_button) {              validatedradiogroup();          } else if (question.getwidgetid() == m_spinner) {               validatedspinner();          } else if (question.getwidgetid() == edit_text) {              validatededittext();          } else if (question.getwidgetid() == rating_bar) {              validatedratingbar();         }           mviewpager.setcurrentitem(getitem(+1), true);      }  };  onclicklistener btnbackonclicklistener = new onclicklistener() {      @override     public void onclick(view v) {          mviewpager.setcurrentitem(getitem(-1), true);      }  };  onclicklistener btndoneonclicklistener = new onclicklistener() {      @override     public void onclick(view v) {         int lastitem = question.getquestionids().size();         if (lastitem == question.getquestionids().size()) {              if (question.getwidgetid() == radio_button) {                  radiotext();              } else if (question.getwidgetid() == m_spinner) {                  spinnertext();              } else if (question.getwidgetid() == edit_text) {                  edittext_value();              } else if (question.getwidgetid() == rating_bar) {                  ratingtext();             }              intent = new intent(getactivity(), finishedsurvey.class);              startactivity(a);          }     }  };   }  public void itemposition() {      (int j = 0; j < num.size(); j++) {          // int item = num.indexof(j);          if (j == 0) {              btnback.setvisibility(view.gone);              btnnext.setvisibility(view.visible);              btndone.setvisibility(view.gone);              system.out.println("the first part");          } else if (!(j == 0 || (j == question.getquestionids().size() - 1))) {              btnback.setvisibility(view.visible);              btnnext.setvisibility(view.visible);              btndone.setvisibility(view.gone);              system.out.println("the second part");          } else {              if (j == question.getquestionids().size() - 1) {                  btnnext.setvisibility(view.invisible);                  btndone.setvisibility(view.visible);                  system.out.println("the last part");              }          }      }   } 


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

How to get multiresult with multicondition in Sql Server -