android - How can I switch between multiple views using a single java class? -


i inherited android studio project no experience java programming. i've been going through , teaching myself using free online tutorials , big nerd ranch guide book , know how switch different .xml views using associated .java classes, want open new .xml view associated same .java class.

basically want modify app have reads information bluetooth device , displays measurements in textview along "pass/fail" display having pass/fail display , "view log" button when clicked, takes new .xml contains textview results.

i'm trying avoid using different .java class because want of items have same functions, on different .xml views, , i'm worried moving have new .java class create more problems have.

i'm not sure if it's necessary, here code: starting screen

frament_bluetooth_scanner.xml: <linearlayout     android:layout_width="match_parent"     android:layout_height="wrap_content">      <button         android:id="@+id/go_to_log"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:padding="16dp"         android:text="@string/view_log"         android:textsize="20dp"/>      <view         android:id="@+id/view"         android:layout_width="fill_parent"         android:layout_height="2dp"         android:background="#ccc"/>  </linearlayout>  <linearlayout     android:orientation="horizontal"     android:paddingtop="@dimen/margin_small"     android:paddingleft="4dp"     android:paddingright="4dp"     android:paddingbottom="4dp"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:layout_gravity="center_horizontal">       <button         android:id="@+id/button_present"         android:layout_width="match_parent"         android:layout_height="match_parent"         android:background="#ffc4ab"         android:clickable="false"         android:padding="16dp"         android:text="no taggant detected"         android:textsize="26dp"         />  </linearlayout> 

button_present both activates bluetooth test , displays pass/fail results. existing , working expected.

go_to_log button added , want click take me next view:

view_list.xml: <framelayout     android:orientation="horizontal"     android:paddingleft="4dp"     android:paddingright="4dp"     android:layout_width="match_parent"     android:layout_height="fill_parent"     android:visibility="visible"     android:layout_gravity="center_horizontal">      <button         android:layout_width="fill_parent"         android:layout_height="40dp"         android:text="@string/clear_log"         android:id="@+id/button_clear_log" />      <textview         android:layout_width="fill_parent"         android:layout_height="fill_parent"         android:paddingtop="40dp"         android:textappearance="?android:attr/textappearancesmall"         android:id="@+id/scanlogview"         android:maxlines = "4096"         android:text="@string/app_name"         android:scrollbars = "vertical"         android:layout_gravity="center_horizontal"/>  </framelayout> 

all of code in fragment_bluetooth_scanner.xml file , worked expected. problem textview hard read because displayed information tests until cleared, , information didn't fit on screen single test. want change more user friendly.

the main .java file quite long i'll post relevant portions of it. scannerfragment.java:

 @override     public void onviewcreated(view view, @nullable bundle  savedinstancestate) {     sp = preferencemanager.getdefaultsharedpreferences(getcontext());      mpoweroffbutton = (button) view.findviewbyid(r.id.button_poweroff);     mdisconnectbutton = (button) view.findviewbyid(r.id.button_disconnect);     mconnectbutton = (button) view.findviewbyid(r.id.button_connect);     mpresence = (button) view.findviewbyid(r.id.button_present);      mbattery = (progressbar) view.findviewbyid(r.id.progressbar);      mblinkconnect = (button) view.findviewbyid(r.id.button_connectionblink);     mblinkdata = (button) view.findviewbyid(r.id.button_communication);     mclearlog = (button) view.findviewbyid(r.id.button_clear_log);      mdevicename = (button) view.findviewbyid(r.id.button_devicename);     mdevicesn = (button) view.findviewbyid(r.id.button_devicesn);     mbatteryperc = (textview) view.findviewbyid(r.id.label_batterypct);      mreadinglog  = (textview) view.findviewbyid(r.id.scanlogview);     mreadinglog.setmovementmethod(new scrollingmovementmethod());     mreadinglog.settext(readfromfile());      mviewlog = (button)view.findviewbyid(r.id.go_to_log);       telephonymanager = (telephonymanager)getcontext().getsystemservice(context.telephony_service);      initlocationservice(this.getcontext());      final actionbar actionbar = getactivity().getactionbar();     if (null == actionbar) {         return;     }     final drawable d = getresources().getdrawable(r.drawable.stardust2);     actionbar.setbackgrounddrawable(d);     actionbar.settitle("");    }  private void setupscanner() {     log.d(tag, "setupscanner()");      // initialize send button listener click events     mpoweroffbutton.setonclicklistener(new view.onclicklistener() {         public void onclick(view v) {             if(isiris) {                 publishmessage(constants.command_poweroff_iris);             } else {                 publishmessage(constants.command_poweroff);             }             mscannerservice.stop();         }     });      // initialize send button listener click events     mdisconnectbutton.setonclicklistener(new view.onclicklistener() {         public void onclick(view v) {             // send message using content of edit text widget             publishmessage(constants.command_disconnect);             mscannerservice.stop();         }     });      // initialize send button listener click events     mconnectbutton.setonclicklistener(new view.onclicklistener() {         public void onclick(view v) {             // send message using content of edit text widget             publishmessage(constants.command_on_connect);         }     });      mclearlog.setonclicklistener(new view.onclicklistener() {         public void onclick(view v) {             // send message using content of edit text widget             mreadinglog.settext("");             if(sp.getboolean("writetofile", true)) {                 writetofile("", "", false);             }         }     }); 

this existing actions take place. main thing deters me creating new .java class mreadinglog used throughout class, , don't understand reading/writing text files @ point, want avoid altering has process.

i've gone through tutorials in past such this one, can't find on how open new xml file while associating in same .java class. possible?

i'm not sure understood. if want switch between different views press of button or ... can use viewfilpper.
add view in activity layout.

<viewflipper    android:id="@+id/simpleviewflipper"    android:layout_width="match_parent"    android:layout_height="wrap_content">     <!--   add view’s here want flip -- >     <include layout="first"/>    <include layout="second"/>    <include layout="third"/>    <!-- ... -->  </ viewflipper > 

Comments

Popular posts from this blog

What is happening when Matlab is starting a "parallel pool"? -

angular - DownloadURL return null in below code -

php - Cannot override Laravel Spark authentication with own implementation -