0

I am using page Viewer.Creating pages and swiping working fine.I am facing one issue after swiping which data enter when swipe and came back previous page data is clear.Please give suggestion this problem.

   public class PageIndicatorActivity extends Activity {

    Button previous, next;

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

        ViewPagerAdapter adapter = new ViewPagerAdapter(this);
        final ViewPager myPager = (ViewPager) findViewById(R.id.myfivepanelpager);
        previous = (Button) findViewById(R.id.previous);
        next = (Button) findViewById(R.id.next);
        myPager.setAdapter(adapter);
        myPager.setCurrentItem(0);
        int pageno = myPager.getCurrentItem();
        int total = adapter.getCount();

        System.out.println("Current page" + pageno + "Total" + total);
            previous.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                myPager.setCurrentItem(myPager.getCurrentItem() - 1, true); // getItem(-1) for previous
            }
        });

        next.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                myPager.setCurrentItem(myPager.getCurrentItem() + 1, true); // getItem(+1) for next
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

    enter code here

public class ViewPagerAdapter extends PagerAdapter {

    Activity activity;
    int size=4;
    TextView question;
    // Hashmap for ListView
    String myjsonstring;
    LinearLayout layout,layout1;
    JSONObject jsonobject;
    JSONArray jarray;

    public ViewPagerAdapter(Activity act) {
        // imageArray = imgArra;
        activity = act;
        StringBuffer sb = new StringBuffer();

        BufferedReader br = null;
        try {
            br = new BufferedReader(new InputStreamReader(activity.getAssets()
                    .open("questionBank.json"), "iso-8859-1"), 8);
            String temp;
            while ((temp = br.readLine()) != null) {
                sb.append(temp);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                br.close(); // stop reading
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
       myjsonstring = sb.toString();
        Log.d("Result", myjsonstring);
        try {
            jsonobject = new JSONObject(myjsonstring);
            jarray = (JSONArray) jsonobject.getJSONArray("question");
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
         //size = jarray.length();

//      try {
//          JSONObject jsonobject = new JSONObject(myjsonstring);
//          JSONArray jarray = (JSONArray) jsonobject.getJSONArray("question");
//          for (int i = 0; i < jarray.length(); i++) {
//              question = new TextView(activity);
//              Log.d("Array Length", i + "");
//              JSONObject jb = (JSONObject) jarray.get(i);
//              String pno = jb.getString("pgNO");
//              String qno = jb.getString("QuestionNo");
//              String qtype = jb.getString("type");
//              String qdept = jb.getString("QDept");
//              String qkpi = jb.getString("QKPI");
//              String qrc = jb.getString("QRC");
//              
//              String qdisplay = jb.getString("QDisplayName");
//              String qanswer = jb.getString("Qchildlook");
//              Log.d("Values", qno + "\n" + qtype + "\n" + qdept + "\n" + qkpi
//                      + "\n" + qrc + "\n" + qdisplay + "\n" + qanswer);
//              question.setText(qno + "." + qdisplay);
//              question.setTextSize(20);
//
//              // tmp hashmap for single contact
//              HashMap<String, String> contact = new HashMap<String, String>();
//
//              // adding each child node to HashMap key => value
//              contact.put(TAG_NO, pno);
//              contact.put(TAG_ID, qno);
//              contact.put(TAG_NAME, qtype);
//              contact.put(TAG_EMAIL, qdisplay);
//
//              // adding contact to contact list
//              contactList.add(contact);
//
//          }
//          // size = jarray.length();
//      } catch (JSONException ex) {
//          Log.d("Exception", ex.getMessage());
//
//      }
    }

    public int getCount() {
        // return imageArray.length;
        return size;
    }
    public Object instantiateItem(View collection, int position) {
        layout1 = new LinearLayout(activity);
        layout = new LinearLayout(activity);
        layout.setPadding(40, 30, 0, 30);
        layout.setOrientation(LinearLayout.VERTICAL);
        layout1.setOrientation(LinearLayout.HORIZONTAL);

        try {

                 for(int i=0;i<jarray.length();i++)
                 {           
                     layout.setPadding(30, 70, 20, 70);
                     TextView question=new TextView(activity);
                     Log.d("Array Length",i+"");
                     JSONObject jb=(JSONObject) jarray.get(i);
                     String pno=jb.getString("pgNO");
                     int pagNo=Integer.parseInt(pno);
                     String qno=jb.getString("QuestionNo");
                     String qtype=jb.getString("type");
                     String qdept=jb.getString("QDept");
                     String qkpi=jb.getString("QKPI");
                     String qrc=jb.getString("QRC");
                     String qdisplay=jb.getString("QDisplayName");
                     String qanswer=jb.getString("Qchildlook");
                     Log.d("Values",qno+"\n"+qtype+"\n"+qdept+"\n"+qkpi+"\n"+qrc+"\n"+qdisplay+"\n"+qanswer);
                     if(qanswer.equals("answer"))
                     {
                         if(qtype.equals("checkbox") )
                         {
                             question.setText(qno+"."+qdisplay);
                             question.setTextSize(20);
                             layout.addView(question);

                             JSONArray jarray1=jb.getJSONArray("Answerword");
                             for(int j=0;j<jarray1.length();j++)
                             {
                                 layout.setPadding(20, 40, 0, 20);
                                 JSONObject jb1=(JSONObject) jarray1.get(j);
                                 CheckBox checkBox=new CheckBox(activity);
                                 checkBox.setText(jb1.getString("option"));
                                 checkBox.setMaxHeight(5);
                                 checkBox.setTextColor(Color.BLACK);
                                 layout.addView(checkBox);
                                 Log.d("Values",jb1.getString("option")+""+jb1.getString("id"));
                             }                       
                         }  
                         else
                         if(qtype.equals("textArea") )  
                         {
                             question.setText(qno+"."+qdisplay);
                             question.setTextSize(20);
                             layout.addView(question);

                            EditText editText=new EditText(activity);
                            editText.setHint("Enter your Comments");
                            editText.setMinHeight(35);
                            InputFilter[] filterArray = new InputFilter[1];
                            filterArray[0] = new InputFilter.LengthFilter(15);
                            editText.setFilters(filterArray);
                            editText.setFilters(new InputFilter[] { new  InputFilter.LengthFilter(30) });
                            editText.setHintTextColor(Color.MAGENTA);
                            layout.addView(editText);
                         }
                         else
                            if(qtype.equals("radio") )
                            {
                             question.setText(qno+"."+qdisplay);
                             question.setTextSize(20);
                             layout.addView(question);

                                LinearLayout hlLayout=new LinearLayout(activity);
                                hlLayout.setOrientation(LinearLayout.HORIZONTAL);
                                hlLayout.setPadding(35, 10, 0, 0);
                                JSONObject subObj = jb.getJSONObject("QOptionMatrix");
                                JSONObject subObj1=subObj.getJSONObject("QOptionHeader");
                                String header1=subObj1.getString("HdrOption1");
                                String header2=subObj1.getString("HdrOption2");
                                String header3=subObj1.getString("HdrOption3");
                                String header4=subObj1.getString("HdrOption4");
                                TextView text=new TextView(activity);
                                text.setText(header1+"\t\t"+header2+"\t\t"+header3+"\t\t"+header4);
                                //hlLayout.setPadding(60,10, 10, 0);
                                hlLayout.addView(text);

//                              JSONObject subObj2=subObj.getJSONObject("QOptions");
//                              String option1=subObj2.getString("Option1");
//                              String option2=subObj2.getString("Option2");
//                              String option3=subObj2.getString("Option3");
//                              String option4=subObj2.getString("Option4");


                                System.out.println(subObj);
                                System.out.println(header1+"\t"+header2+"\t"+header3+"\t"+header4);


                                JSONArray jsonArray1=subObj.getJSONArray("QOptions1");  
                                JSONArray jsonArray2=subObj.getJSONArray("QOptions2");
                                JSONArray jsonArray3=subObj.getJSONArray("QOptions3");

                                layout.addView(hlLayout);
                                radioMethodH(jsonArray1);
                                radioMethodH(jsonArray2);
                                radioMethodH(jsonArray3);

                            }   
                         JSONObject qvalidation = jb.getJSONObject("QValidation");
                         String nameValue = qvalidation.getString("QMessages");
                         Log.d("Message",nameValue);             
                    }
                     else
                     {
                         {
                         question.setText(qno+"."+qdisplay);
                         question.setTextSize(20);
                         layout.addView(question);

                         JSONObject child = jb.getJSONObject("child");
                         String questionno = child.getString("QuestionNo");
                         String quesdisplay=child.getString("QDisplayName");
                          Log.d("Child",questionno+"\n"+quesdisplay);
                         TextView childtext=new TextView(activity);
                         childtext.setText("\t\t"+questionno+"."+quesdisplay);
                         layout.addView(childtext);

                         JSONObject firstchild=jb.getJSONObject("firstchild");
                         String firstchildq=firstchild.getString("QuestionNo");
                         String firstchildd=firstchild.getString("QDisplayName");
                         String firstchildtype=firstchild.getString("firstchildtype");
                         String firstorientation=firstchild.getString("OptionDisplayType");
                         TextView firstchid=new TextView(activity);
                         firstchid.setText("\t\t\t"+firstchildq+"."+firstchildd);
                         System.out.println(firstchildtype+"\t"+firstorientation);
                         layout.addView(firstchid);
                         if(firstchildtype.equals("radio"))
                         {
                             if(firstorientation.equals("H"))
                             {
                               JSONArray jarray1=jb.getJSONArray("firstchildAnswerword");
                               radioMethodH(jarray1);
                             }
                             else
                             {
                                 JSONArray jarray1=jb.getJSONArray("firstchildAnswerword");
                                radioMethodV(jarray1);
                             }
                         } 
                         JSONObject secondchild=jb.getJSONObject("secondchild");
                         String secondchildq=secondchild.getString("QuestionNo");
                         String secondchildd=secondchild.getString("QDisplayName");
                         String secondchildtype=secondchild.getString("secondchildtype");
                         String secondorientation=secondchild.getString("OptionDisplayType");
                         TextView secondchid=new TextView(activity);
                        secondchid.setText("\t\t\t"+secondchildq+"."+secondchildd);
                        System.out.println(secondchildtype+"\t"+secondorientation);

                        layout.addView(secondchid);

                         if(secondchildtype.equals("radio"))
                         {
                             if(secondorientation.equals("H"))
                             {

                                 JSONArray jarray2=jb.getJSONArray("secondchildAnswerword");
                                 radioMethodH(jarray2);  

                             }
                             else
                             {

                                 JSONArray jarray2=jb.getJSONArray("secondchildAnswerword");
                                 radioMethodV(jarray2);  
                             }
                         } 
                     }
                   }
                }
        } catch (JSONException ex) {
            Log.d("Exception", ex.getMessage());

        }

//      for (HashMap<String, String> conString : contactList) {
//          Log.d("hsjahfld", conString.get(TAG_NAME)+"");
//          Log.d("page No", conString.get(TAG_NO)+"");
//          Log.d("Position", position + "");
//
//          int pageno =Integer.parseInt(conString.get(TAG_NO));
//
//          Log.d("page No1", pageno + "");
//
//          if (conString.get(TAG_NAME).equals("textArea")
//                  && pageno - 1 == position) {
//              TextView text = new TextView(activity);
//              EditText editText = new EditText(activity);
//              text.setText(conString.get(TAG_EMAIL)+"");
//              layout.addView(text);
//              editText.setHint("Enetr your comments");
//              layout.addView(editText);
//
//          } else if (conString.get(TAG_NAME).equals("checkbox")
//                  && pageno - 1 == position) {
//              TextView text = new TextView(activity);
//              text.setText(conString.get(TAG_EMAIL)+"");
//              layout.addView(text);
//
//              CheckBox checkBox = new CheckBox(activity);
//              checkBox.setMaxHeight(5);
//              layout.addView(checkBox);
//          }
//
//          else if (conString.get(TAG_NAME).equals("radio")
//                  && pageno - 1 == position) {
//              TextView text = new TextView(activity);
//              text.setText(conString.get(TAG_EMAIL)+"");
//              layout.addView(text);
//
//              RadioGroup radioGroup = new RadioGroup(activity);
//              radioGroup.setOrientation(RadioGroup.HORIZONTAL);
//              for (int i = 0; i < 3; i++) {
//                  RadioButton radioButton = new RadioButton(activity);
//                  radioGroup.addView(radioButton);
//              }
//              layout.addView(radioGroup);
//          }
//
//          else if (conString.get(TAG_NAME).equals("seekbar")
//                  && pageno - 1 == position) {
//              TextView text = new TextView(activity);
//              text.setText(conString.get(TAG_EMAIL)+"");
//              layout.addView(text);
//
//              LinearLayout liLayout = new LinearLayout(activity);
//              liLayout.setOrientation(LinearLayout.HORIZONTAL);
//
//              for (int i = 0; i <= 10; i++) {
//
//                  Button button = new Button(activity);
//                  if (i == 0 || i == 1 || i == 2 || i == 3 || i == 4
//                          || i == 5 || i == 6) {
//                      button.setMaxHeight(35);
//                      button.setMinWidth(2);
//                      button.setText(i + "");
//                      button.setTextColor(Color.BLACK);
//                      button.setBackgroundColor(Color.RED);
//                      button.setMinimumWidth(2);
//                      liLayout.addView(button);
//                  } else if (i == 7 || i == 8) {
//                      button.setMaxHeight(35);
//                      button.setMinWidth(2);
//                      button.setText(i + "");
//                      button.setBackgroundColor(Color.YELLOW);
//                      button.setMinimumWidth(2);
//                      button.setTextColor(Color.BLACK);
//                      liLayout.addView(button);
//                  } else if (i == 9 || i == 10) {
//                      button.setMaxHeight(35);
//                      button.setMinWidth(2);
//                      button.setText(i + "");
//                      button.setTextColor(Color.BLACK);
//                      button.setBackgroundColor(Color.GREEN);
//                      button.setMinimumWidth(2);
//                      liLayout.addView(button);
//                  }
//              }
//              layout.addView(liLayout);
//
//          }
//      }

        ((ViewPager) collection).addView(layout);
        return layout;
    }

    @Override
    public void destroyItem(View arg0, int arg1, Object arg2) {
        ((ViewPager) arg0).removeView((View) arg2);
    }

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        return arg0 == ((View) arg1);
    }

    @Override
    public Parcelable saveState() {
        return null;
    }
      public void radioMethodH(JSONArray aryy)
       {
           RadioGroup radioGroup=new RadioGroup(activity);
           radioGroup.setOrientation(RadioGroup.HORIZONTAL);
           for(int i =0;i<aryy.length();i++)
           {
            try {

                JSONObject jb=(JSONObject) aryy.get(i);
                radioGroup.setPadding(25,10, 10, 0);
                RadioButton radioButton=new RadioButton(activity);
                radioButton.setText(jb.getString("option"));
                radioButton.setTextColor(Color.BLACK);
                if(jb.getString("option").equals(""))
                {
                    radioButton.setVisibility(RadioButton.INVISIBLE);
                }
                else
                {
                radioGroup.addView(radioButton);
                }

            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }   
           }

           layout.addView(radioGroup);

       }

      public void radioMethodV(JSONArray aryy)
       {
           RadioGroup radioGroup=new RadioGroup(activity);
           radioGroup.setOrientation(RadioGroup.VERTICAL);
           for(int i =0;i<aryy.length();i++)
           {
            try {

                JSONObject jb=(JSONObject) aryy.get(i);
                radioGroup.setPadding(25,10, 10, 0);
                RadioButton radioButton=new RadioButton(activity);
                radioButton.setText(jb.getString("option"));
                radioButton.setTextColor(Color.BLACK);
                if(jb.getString("option").equals(""))
                {
                    radioButton.setVisibility(RadioButton.INVISIBLE);
                }
                else
                {
                radioGroup.addView(radioButton);
                }
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }   
           }

           layout.addView(radioGroup);

       }

}
Madvesha k
  • 11
  • 3
  • Above problem enter data in first page swipe second page and swipe back to first page data is not clear . When swipe 1st page to 3rd page and above page and swipe back to 1st page enter data is clear .Where i am doing wrong in above please hits me – Madvesha k Mar 10 '16 at 10:13
  • first of all in viewpager u need to use fragment to do simple code.i think in your case u need to use pager.addOnPageChangeListener to page on select in your code.try this to refernce how to use fragment in viewpager http://stackoverflow.com/questions/18413309/how-to-implement-a-viewpager-with-different-fragments-layouts – Kishan patel Mar 10 '16 at 10:32
  • Thnax Kishan , when json response comes according i have to create pages and display UI .is it possible use fragments – Madvesha k Mar 10 '16 at 11:04
  • yes its possiable u can use fragment.u can search on google easily implement and one suggestion u can make your adapter class not in activity u can create your class in java file and implement in your acticity so your code not show more complicated. – Kishan patel Mar 10 '16 at 11:14

0 Answers0