java - Get View when using fragments -


i trying 'view' of layout. need create button listeners , such clueless on way this. also, using 'viewpager' host tabs, , using layout fragments. code have, hope don't need more that. if do, ask me it.

here's code:

package net.dankrushen.filetosms;  import android.app.dialog; import android.support.design.widget.tablayout; import android.support.v7.app.appcompatactivity; import android.support.v7.widget.toolbar;  import android.support.v4.app.fragment; import android.support.v4.app.fragmentmanager; import android.support.v4.app.fragmentpageradapter; import android.support.v4.view.viewpager; import android.os.bundle; import android.telephony.smsmanager; import android.view.layoutinflater; import android.view.menu; import android.view.menuitem; import android.view.view; import android.view.viewgroup;  import android.widget.adapterview; import android.widget.arrayadapter; import android.widget.button; import android.widget.edittext; import android.widget.listview; import android.widget.progressbar; import android.widget.textview; import android.widget.toast;  import net.qwertysam.codec.byteutil; import net.qwertysam.percentage.tasks;  import java.io.file; import java.text.simpledateformat; import java.util.arraylist; import java.util.calendar; import java.util.list; import java.util.concurrent.timeunit;  public class mainactivity extends appcompatactivity {      private static mainactivity instance;      public static mainactivity instance(){         return instance;     }      private button buttonopendialog;     private button buttonup;     private textview textfolder;     private textview fileselected;     private string sell = "null";     private button senddata;     private textview percentage;     private progressbar progressbar;     private textview taskdisplay;     private edittext phonenum;     private boolean isrunning = false;      //file chooser dialog     private static final int custom_dialog_id = 0;     private listview dialog_listview;     private file root;     private file curfolder;     private list<string> filelist = new arraylist<>();      /**      * {@link android.support.v4.view.pageradapter} provide      * fragments each of sections. use      * {@link fragmentpageradapter} derivative, keep every      * loaded fragment in memory. if becomes memory intensive,      * may best switch      * {@link android.support.v4.app.fragmentstatepageradapter}.      */     private sectionspageradapter msectionspageradapter;      /**      * {@link viewpager} host section contents.      */     private viewpager mviewpager;      public void setpercentage(final tasks task, final int percent) {         this.runonuithread(new thread() {             public void run() {                 percentage.settext(percent + "%");                 progressbar.setprogress(percent);                 taskdisplay.settext(task.title() + " (" + task.gettasknum() + "/" + task.gettotaltasknum() + ")");             }         });     }      public void setprocessing(final boolean visible){         this.runonuithread(new thread() {             public void run() {                 percentage.setvisibility(visible ? view.visible : view.invisible);                 taskdisplay.setvisibility(visible ? view.visible : view.invisible);                 progressbar.setvisibility(visible ? view.visible : view.invisible);             }         });     }      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);          toolbar toolbar = (toolbar) findviewbyid(r.id.toolbar);         setsupportactionbar(toolbar);         // create adapter return fragment each of 3         // primary sections of activity.         msectionspageradapter = new sectionspageradapter(getsupportfragmentmanager());          // set viewpager sections adapter.         mviewpager = (viewpager) findviewbyid(r.id.container);         mviewpager.setadapter(msectionspageradapter);          tablayout tablayout = (tablayout) findviewbyid(r.id.tabs);         tablayout.setupwithviewpager(mviewpager);          view nice = placeholderfragment.newinstance(0).getview();          buttonopendialog = (button) nice.findviewbyid(r.id.opendialog);         buttonopendialog.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                 showdialog(custom_dialog_id);             }         });          progressbar = (progressbar) nice.findviewbyid(r.id.progressbar);         percentage = (textview) nice.findviewbyid(r.id.percentage);         taskdisplay = (textview) nice.findviewbyid(r.id.curproc);         phonenum = (edittext) nice.findviewbyid(r.id.phonenum);          setpercentage(tasks.idle, 0);         setprocessing(false);          root = new file("/storage/");         curfolder = root;          senddata = (button) nice.findviewbyid(r.id.send);         senddata.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                 if (!isrunning) {                     if (!sell.equals("null")) {                         if (!phonenum.gettext().tostring().replaceall("\\d+", "").isempty() && phonenum.gettext() != null) {                             warningdialog();                         } else {                             toast.maketext(mainactivity.this, "please enter phone number!", toast.length_short).show();                         }                     } else {                         toast.maketext(mainactivity.this, "please select file!", toast.length_short).show();                     }                 } else {                     toast.maketext(mainactivity.this, "please wait current process finish!", toast.length_short).show();                 }             }         });      }      private void warningdialog(){         // custom dialog         final dialog dialog = new dialog(mainactivity.this);         dialog.setcontentview(r.layout.dialogwarn);         dialog.settitle("details");         textview warntxtfile = (textview) dialog.findviewbyid(r.id.warntxtfile);         warntxtfile.settext(fileselected.gettext());         textview warntxtbytes = (textview) dialog.findviewbyid(r.id.warntxtbytes);         file sellect = new file(sell);         warntxtbytes.settext(string.valueof(sellect.length()) + " bytes");         textview warntxtmessages = (textview) dialog.findviewbyid(r.id.warntxtmessages);         double massages = math.ceil(sellect.length()/105)+3;         double messagesnum = (massages == 3 ? massages + 1 : massages);         warntxtmessages.settext(string.format("%.0f", messagesnum).replace(".0", "") + " messages");         double processtime = math.ceil((sellect.length() * 0.0000006353240152) + 1)-1;         double fulltime = processtime + messagesnum;         textview warntxtesttime = (textview) dialog.findviewbyid(r.id.warntxtesttime);         warntxtesttime.settext(gettime((long) fulltime));         button cnclbtn = (button) dialog.findviewbyid(r.id.cancelbtn);         // if button clicked, close custom dialog         cnclbtn.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                 dialog.dismiss();             }         });          button contbtn = (button) dialog.findviewbyid(r.id.continuebtn);         // if button clicked, close custom dialog         contbtn.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                 toast.maketext(mainactivity.this, "converting file...", toast.length_short).show();                 isrunning = true;                 byteprocessor();                 dialog.dismiss();             }         });          dialog.show();     }      @override     protected dialog oncreatedialog(int id) {          dialog dialog = null;          switch (id) {             case custom_dialog_id:                 dialog = new dialog(mainactivity.this);                 dialog.setcontentview(r.layout.dialoglayout);                 dialog.settitle("file chooser");                 dialog.setcancelable(true);                 dialog.setcanceledontouchoutside(true);                  textfolder = (textview) dialog.findviewbyid(r.id.folder);                 buttonup = (button) dialog.findviewbyid(r.id.up);                 buttonup.setonclicklistener(new view.onclicklistener() {                     @override                     public void onclick(view v) {                         listdir(curfolder.getparentfile());                     }                 });                  dialog_listview = (listview) dialog.findviewbyid(r.id.dialoglist);                 dialog_listview.setonitemclicklistener(new adapterview.onitemclicklistener() {                     @override                     public void onitemclick(adapterview<?> parent, view view, int position, long id) {                         file selected = new file(filelist.get(position));                         if (selected.isdirectory()) {                             listdir(selected);                         } else {                             fileselected = (textview) findviewbyid(r.id.fileselected);                             fileselected.settext(selected.getname());                             sell = selected.tostring();                             toast.maketext(mainactivity.this, selected.tostring() + " selected",                                     toast.length_long).show();                             dismissdialog(custom_dialog_id);                          }                     }                 });                  break;         }         return dialog;     }      @override     protected void onpreparedialog(int id, dialog dialog) {         super.onpreparedialog(id, dialog);         switch (id) {             case custom_dialog_id:                 listdir(curfolder);                 break;         }     }      private void listdir(file f) {         if (f.equals(root)) {             buttonup.setenabled(false);         } else {             buttonup.setenabled(true);         }          curfolder = f;         textfolder.settext(f.getpath());          file[] files = f.listfiles();         filelist.clear();          (file file : files) {             if(file.length() != 0) {                 filelist.add(file.getpath());             }         }          arrayadapter<string> directorylist = new arrayadapter<>(this,                 android.r.layout.simple_list_item_1, filelist);         dialog_listview.setadapter(directorylist);     }      private void byteprocessor() {         setprocessing(true);          new thread() {             public void run() {                  list<string> encoded = byteutil.splitintosendables(byteutil.encodebytes(byteutil.bytesfromfile(sell)));                  smsmanager sms = smsmanager.getdefault();                 string phonenumber = phonenum.gettext().tostring().replaceall("\\d+", "");                  system.out.println("sending messages: " + encoded.size());                  file sellect = new file(sell);                  calendar cal = calendar.getinstance();                 simpledateformat sdf = new simpledateformat("hh:mm:ss");                 system.out.println( sdf.format(cal.gettime()) );                  string firstmessage = "<(<(||\"" + fileselected.gettext() + "\"," + sellect.length() + " bytes," + encoded.size() + " message(s)," + sdf.format(cal.gettime()) + "||";                  for(string sendable : splitstringevery(firstmessage, 140)) {                     sms.sendtextmessage(phonenumber, null, sendable, null, null);                 }                  (string tosend : encoded) {                     system.out.println("sending message: " + tosend);                     sms.sendtextmessage(phonenumber, null, tosend, null, null);                 }                  sms.sendtextmessage(phonenumber, null, "||)>)>", null, null);                  isrunning = false;             }         }.start();          setprocessing(false);     }      public string gettime(long seconds){         int days = (int) timeunit.seconds.todays(seconds);         long hours = timeunit.seconds.tohours(seconds) - (days *24);         long minute = timeunit.seconds.tominutes(seconds) - (timeunit.seconds.tohours(seconds)* 60);         long second = timeunit.seconds.toseconds(seconds) - (timeunit.seconds.tominutes(seconds) *60);         return (days == 0 ? "" : days + "d ") + (hours == 0 ? "" : hours + "h ") + (minute == 0 ? "" : minute + "m ") + (second == 0 ? "" : second + "s");     }      public string[] splitstringevery(string s, int interval) {         int arraylength = (int) math.ceil(((s.length() / (double)interval)));         string[] result = new string[arraylength];          int j = 0;         int lastindex = result.length - 1;         (int = 0; < lastindex; i++) {             result[i] = s.substring(j, j + interval);             j += interval;         } //add last bit         result[lastindex] = s.substring(j);          return result;     }      @override     public boolean oncreateoptionsmenu(menu menu) {         // inflate menu; adds items action bar if present.         getmenuinflater().inflate(r.menu.menu_main, menu);         return true;     }      @override     public boolean onoptionsitemselected(menuitem item) {         // handle action bar item clicks here. action bar         // automatically handle clicks on home/up button, long         // specify parent activity in androidmanifest.xml.         int id = item.getitemid();          //noinspection simplifiableifstatement         if (id == r.id.action_settings) {             return true;         }          return super.onoptionsitemselected(item);     }      /**      * placeholder fragment containing simple view.      */     public static class placeholderfragment extends fragment {         /**          * fragment argument representing section number          * fragment.          */         private static final string arg_section_number = "section_number";          public placeholderfragment() {         }          /**          * returns new instance of fragment given section          * number.          */         public static placeholderfragment newinstance(int sectionnumber) {             placeholderfragment fragment = new placeholderfragment();             bundle args = new bundle();             args.putint(arg_section_number, sectionnumber);             fragment.setarguments(args);             return fragment;         }          @override         public view oncreateview(layoutinflater inflater, viewgroup container,                                  bundle savedinstancestate) {             int sectionnum = getarguments().getint(arg_section_number);             view rootview = (sectionnum == 1 ? inflater.inflate(r.layout.sendfragment, container, false) : inflater.inflate(r.layout.receivefragment, container, false));             return rootview;         }     }      /**      * {@link fragmentpageradapter} returns fragment corresponding      * 1 of sections/tabs/pages.      */     public class sectionspageradapter extends fragmentpageradapter {          public sectionspageradapter(fragmentmanager fm) {             super(fm);         }          @override         public fragment getitem(int position) {             // getitem called instantiate fragment given page.             // return placeholderfragment (defined static inner class below).             return placeholderfragment.newinstance(position + 1);         }          @override         public int getcount() {             // show 2 total pages.             return 2;         }          @override         public charsequence getpagetitle(int position) {             switch (position) {                 case 0:                     return "send";                 case 1:                     return "receive";             }             return null;         }     } } 

http://pastebin.com/sxcyajnq <-- new code

to view fragment, can use:

getactivity().findviewbyid(r.id.abc); 

to understand in fragment can this, study fragment lifecycle - http://developer.android.com/guide/components/fragments.html


Comments

Popular posts from this blog

how to insert data php javascript mysql with multiple array session 2 -

multithreading - Exception in Application constructor -

windows - CertCreateCertificateContext returns CRYPT_E_ASN1_BADTAG / 8009310b -