FILE MainActivity.java CODE TO STORE THE BUTTON MENU AND MOVE THE PAGE
APPENDIX FILE MainActivity.java
package com.ste.sembakoapp; import Android.content.Intent; import Android.support.v7.app.AppCompatActivity; import Android.os.Bundle; import Android.view.View; import Android.widget.Button; public class MainActivity extends AppCompatActivity { private Button btn1 , btn2 , btn3 ;
@Override
protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout. activity_main );
btn1 = (Button) findViewById(R.id. menu1 ); btn2 = (Button) findViewById(R.id. menu2 ); btn3 = (Button) findViewById(R.id. menu3 ); btn1 .setOnClickListener( new View.OnClickListener() { @Override
public void onClick(View v) { startActivity( new Intent(MainActivity. this , display. class )); } });
btn2 .setOnClickListener( new View.OnClickListener() { @Override
public void onClick(View v) { startActivity( new Intent(MainActivity. this , DetailActivity. class )); } });
btn3 .setOnClickListener( new View.OnClickListener() { @Override
public void onClick(View v) { startActivity( new Intent(MainActivity. this , AboutActivity. class )); } }); } }
FILE Display.java
CODE TO TAKE DATA ON MINISTRY OF TRADE WEBSITE AND
DISPLAY ALL PRICESpackage com.ste.sembakoapp; import Android.support.v7.app.AppCompatActivity; import Android.os.Bundle; import Android.view.View; import Android.widget.ArrayAdapter; import Android.widget.Button; import Android.widget.Spinner; import Android.widget.TextView; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.IOException; public class display extends AppCompatActivity { private Button getBtn ; private TextView result ; private Spinner spinner , spinner2 ;
@Override
protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout. activity_display );
result = (TextView) findViewById(R.id. result ); getBtn = (Button) findViewById(R.id. getBtn ); spinner = (Spinner) findViewById(R.id. tahun_spinner );
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this , R.array. tahun_array , Android.R.layout. simple_spinner_item ); adapter.setDropDownViewResource(Android.R.layout. simple_spinner_d
ropdown_item ); spinner .setAdapter(adapter); spinner2 = (Spinner) findViewById(R.id. bulan_spinner );
ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource( this , R.array. bulan_array , Android.R.layout. simple_spinner_item ); adapter2.setDropDownViewResource(Android.R.layout. simple_spinner_
dropdown_item ); spinner2 .setAdapter(adapter2); getBtn .setOnClickListener( new View.OnClickListener() { @Override
public void onClick(View v) { final StringBuilder url = new StringBuilder(); final StringBuilder period = new StringBuilder(); String tahun = spinner .getSelectedItem().toString();
int bulan_pos = spinner2 .getSelectedItemPosition(); String bulan = String.valueOf(bulan_pos+
1 );
String str_bulan = spinner2 .getSelectedItem().toString(); String URL = url.append( "http://www.kemendag.go.id/id/economic-
profile/prices/national-price-table?
year=" ).append(tahun).append( "&month=" ).append(bulan).toString();
String periode = period.append(str_bulan).append( "-" ).append(tahun).toString(); getWebsite(URL,periode); } }); } private void getWebsite( final String URL, final String periode){ new Thread( new Runnable() {
@Override
public void run() { final StringBuilder builder = new StringBuilder(); try { Document doc = Jsoup.connect( URL ).get(); Element table = doc.select( "table" ).get( ); Elements rows = table.select( "tr" ); Element row_tanggal = rows.get(
1 );
Elements tgl = row_tanggal.select( "th" ); int [] tanggal = new int [tgl.size()]; for ( int j= ; j<tgl.size(); j++){ String getTgl=tgl.get(j).text(); tanggal[j]=Integer.parseInt(getTgl); } builder.append( " \n " ); LinkedListImpl listData = new LinkedListImpl(); for ( int i=
2 ; i<rows.size(); i++){
Element row = rows.get(i); Elements cols = row.select( "td" ); String nama = cols.get(
1 ).text();
int numOfHarga= cols.size()-
3 ;
float [] arrHarga = new float [numOfHarga]; int idx= ; for ( int k=
3 ; k<cols.size(); k++){
String harga = cols.get(k).text(); String harga_rep = harga.replaceAll( "[^a-zA-Z0-9]" , "" ); float c = ; if (!harga_rep.equals( "" )){ c = Float.parseFloat(harga_rep); } else { c = ; } arrHarga[idx]=c; idx++;
} node node = new node(nama, arrHarga, tanggal); listData.addLast(node); } Statistic stat = new Statistic(); node pointer = listData.getHead(); while (pointer != null ) { builder.append( "Name :
" ).append(pointer.getNama()).append( " \n " );
builder.append( "Period :
" ).append( periode ).append( " \n " );
builder.append( "Prices" ).append( " \n " ); float [] h = pointer.getHarga(); int [] t = pointer.getTanggal(); for ( int a= ; a<h. length ; a++){ builder.append( "Date :
" ).append(t[a]);
if (t[a] <
10 ){
builder.append( " | " ); } else { builder.append( " | " ); } builder.append( "Price :
" ).append(h[a]).append( " \n " );
} builder.append( " \n " ); builder.append( "Statistics" ).append( " \n " ); float meanVal = stat.mean(h); double medVal = stat.median(h); float modeVal = stat.mode(h); builder.append( "Mean =
" ).append(meanVal).append( " \n " );
builder.append( "Median =
" ).append(medVal).append( " \n " );
builder.append( "Mode =
" ).append(modeVal).append( " \n " );
pointer = pointer.getNext(); builder.append( " \n " ).append( " \n " ); } } catch (IOException e) { builder.append( "Error :" ).append(e.getMessage()).append( " \n " ); } runOnUiThread( new Runnable() {
@Override
public void run() {
result .setText( builder .toString());
} }); } }).start(); } }
FILE DetailActivity.java
CODE TO DISPLAY THE DATA BASIC COMMODITIES ACCORDANCE
WITH ITEMS SELECTED AND DISPLAY THE GRAPH OF
STATISTICAL CALCULATIONSpackage com.ste.sembakoapp; import Android.graphics.Color; import Android.os.Bundle; import Android.support.v7.app.AppCompatActivity; import Android.view.View; import Android.widget.ArrayAdapter; import Android.widget.Button; import Android.widget.Spinner; import Android.widget.TextView; import Android.widget.Toast; import com.jjoe64.graphview.GraphView; import com.jjoe64.graphview.GridLabelRenderer; import com.jjoe64.graphview.LegendRenderer; import com.jjoe64.graphview.series.DataPoint; import com.jjoe64.graphview.series.DataPointInterface; import com.jjoe64.graphview.series.LineGraphSeries; import com.jjoe64.graphview.series.OnDataPointTapListener; import com.jjoe64.graphview.series.Series; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.IOException; import java.util.Random; public class DetailActivity extends AppCompatActivity { private Button getBtn ; private TextView result ; private Spinner spinner , spinner2 , spinner3 ; private LineGraphSeries<DataPoint> mSeries1 ;
@Override
protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout. activity_detail );
result = (TextView) findViewById(R.id. result ); getBtn = (Button) findViewById(R.id. getBtn );
spinner = (Spinner) findViewById(R.id. tahun_spinner );
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this , R.array. tahun_array , Android.R.layout. simple_spinner_item ); adapter.setDropDownViewResource(Android.R.layout. simple_spinner_d
ropdown_item ); spinner .setAdapter(adapter); spinner2 = (Spinner) findViewById(R.id. bulan_spinner );
ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource( this , R.array. bulan_array , Android.R.layout. simple_spinner_item ); adapter2.setDropDownViewResource(Android.R.layout. simple_spinner_
dropdown_item ); spinner2 .setAdapter(adapter2); spinner3 = (Spinner) findViewById(R.id. item_spinner );
ArrayAdapter<CharSequence> adapter3 = ArrayAdapter.createFromResource( this , R.array. item_array , Android.R.layout. simple_spinner_dropdown_item ); adapter3.setDropDownViewResource(Android.R.layout. simple_spinner_
dropdown_item ); spinner3 .setAdapter(adapter3); getBtn .setOnClickListener( new View.OnClickListener() { @Override
public void onClick(View v) { final StringBuilder url = new StringBuilder(); final StringBuilder period = new StringBuilder(); String tahun =
spinner .getSelectedItem().toString();
int bulan_pos =
spinner2 .getSelectedItemPosition();
int item_pos = spinner3 .getSelectedItemPosition(); String item_name =
spinner3 .getSelectedItem().toString();
String bulan = String.valueOf(bulan_pos+
1 );
String str_bulan =
spinner2 .getSelectedItem().toString();
String URL = url.append( "http://www.kemendag.go.id/id/economic-
profile/prices/national-price-table?
year=" ).append(tahun).append( "&month=" ).append(bulan).toString();
String periode = period.append(str_bulan).append( "-" ).append(tahun).toString(); getWebsite(URL,periode,item_pos, item_name); } });
} private void getWebsite( final String URL, final String periode, final int item_position, final String item_name){ new Thread( new Runnable() {
@Override
public void run() { final StringBuilder builder = new StringBuilder(); try { Document doc = Jsoup.connect( URL ).get(); Element table = doc.select( "table" ).get( ); Elements rows = table.select( "tr" ); Element row_tanggal = rows.get(
1 );
Elements tgl = row_tanggal.select( "th" ); int [] tanggal = new int [tgl.size()]; for ( int j= ; j<tgl.size(); j++){ String getTgl=tgl.get(j).text(); tanggal[j]=Integer.parseInt(getTgl); } LinkedListImpl listData = new LinkedListImpl(); for ( int i=
2 ; i<rows.size(); i++){
Element row = rows.get(i); Elements cols = row.select( "td" ); String nama = cols.get(
1 ).text();
int numOfHarga= cols.size()-
3 ;
float [] arrHarga = new float [numOfHarga]; int idx= ; for ( int k=
3 ; k<cols.size(); k++){
String harga = cols.get(k).text(); String harga_rep = harga.replaceAll( "[^a-zA-Z0-9]" , "" ); float c = ; if (!harga_rep.equals( "" )){ c = Float.parseFloat(harga_rep); } else { c = ; } arrHarga[idx]=c; idx++; } node node = new node(nama, arrHarga, tanggal); listData.addLast(node); } Statistic stat = new Statistic(); node pointer = listData.get( item_position ); builder.append( "Name :
" ).append( item_name ).append( " \n " );
builder.append( "Period :
" ).append( periode ).append( " \n " );
builder.append( "Prices" ).append( " \n " ); float [] h = pointer.getHarga(); int [] t = pointer.getTanggal(); DataPoint[] values = new DataPoint[h. length ]; for ( int a= ; a<h. length ; a++){ int x = t[a]; float y = h[a]; DataPoint v = new DataPoint(x, y); values[a] = v; builder.append( "Date : " ).append(t[a]); if (t[a] <
10 ){
builder.append( " | " ); } else { builder.append( " | " ); } builder.append( "Price :
" ).append(h[a]).append( " \n " );
} Random rand = new Random(); int r = rand.nextInt( 255 ); int g = rand.nextInt( 255 ); int b = rand.nextInt( 255 ); int randomColor = Color.rgb(r,g,b);
mSeries1 = new LineGraphSeries<>(values); mSeries1 .setTitle( item_name ); mSeries1 .setColor(randomColor); mSeries1 .setOnDataPointTapListener( new
OnDataPointTapListener() {
@Override
public void onTap(Series series, DataPointInterface dataPoint) { Toast.makeText(DetailActivity. this ,
"Price : " +dataPoint, Toast. LENGTH_SHORT ).shown();
} }); builder.append( " \n " ); builder.append( "Statistics" ).append( " \n " ); float meanVal = stat.mean(h); double medVal = stat.median(h); float modeVal = stat.mode(h); builder.append( "Mean =
" ).append(meanVal).append( " \n " );
builder.append( "Median =
" ).append(medVal).append( " \n " );
builder.append( "Mode =
" ).append(modeVal).append( " \n \n " );
builder.append( "Graph Data" ).append( " \n " ); } catch (IOException e) { builder.append( "Error :" ).append(e.getMessage()).a ppend( " \n " ); }
runOnUiThread( new Runnable() {
@Override
public void run() {
result .setText( builder .toString());
GraphView graph = (GraphView) findViewById(R.id. graph ); GridLabelRenderer gridlabel = graph.getGridLabelRenderer(); gridlabel.setHorizontalAxisTitle( "Dates : + " periode ); gridlabel.setVerticalAxisTitle( "Prices
(Rupiah)" );
graph.addSeries( mSeries1 ); graph.getViewport().setXAxisBoundsManual( true ); graph.getLegendRenderer().setVisible( true ); graph.getLegendRenderer().setAlign(LegendRenderer.LegendAlign. TOP ) ; graph.getViewport().setScalable( true ); graph.getViewport().setScrollableY( true ); graph.getViewport().setScalable( true ); graph.getViewport().setScalableY( true ); } }); } }).start(); } }
FILE AboutActivity.java CODE TO DISPLAY PROJECT INFORMATION
package com.ste.sembakoapp; import Android.support.v7.app.AppCompatActivity; import Android.os.Bundle; public class AboutActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout. activity_about ); } }
FILE Node.java
CODE TO STORE ITEM DATA IN A NODE TO BE INSERTED INTO
LINKED LISTpackage com.ste.sembakoapp; public class node { private String nama ; private float [] harga ; private int [] tanggal ; private node next ; private node prev ; public node(String nama, float [] harga, int [] tanggal) { this . nama = nama; this . harga = harga; this . tanggal = tanggal; this . next = null ; this . prev = null ; } public node(node E, node next, node prev) { this . nama = E.getNama(); this . harga = E.getHarga(); this . tanggal = E.getTanggal(); this . next = next; this . prev = prev; } public String getNama() { return this . nama ; } public float [] getHarga() { return this . harga ; } public int [] getTanggal() { return this . tanggal ; } public node getNext() { return next ; } public node getPrev() { return prev ; } public void setNext(node next) { this . next = next; } public void setPrev(node prev) { this . prev = prev; } }
FILE LinkedListImpl.java CODE TO STORE DATA INTO LINKED LIST
package com.ste.sembakoapp; public class LinkedListImpl { private node head ; private node tail ; private int size ; public LinkedListImpl() {
size = ;
} public int size() { return size ; } public boolean isEmpty() { return size == ; } public node getHead() { return head ; } public node get( int i) { if (i < size ) { node pointer = head ; int position =
1 ;
while (position <= i) { pointer = pointer.getNext(); position++; } return pointer; } else { return null ; } } public void addFirst(node E) { if ( size == ) {
head = new node(E, null , null ); tail = head ; size ++;
} else {
head .setPrev(E);
E.setNext( head );
head = E; size ++;
} } public void addLast(node E) { if ( size == ) {
tail = new node(E, null , null ); head = tail ;
size ++;
size --;
tail .setNext( null ); size --;
del.setPrev( null );
tail = tail .getPrev();
node del = tail ;
1 ) {
} else if ( size >
1 ) {
head = null ;
tail = null ;
size --;} } public void dellLast() { if ( size ==
del.setNext( null );
} else {
head = head .getNext(); head .setPrev( null );
node del = head ;
1 ) {
} else if ( size >
1 ) {
head = null ;
tail = null ;
size --;} } public void dellFirst() { if ( size ==
tail = E; size ++;
E.setPrev( tail );
tail .setNext(E);
} } public void setHead(node head) { this . head = head; } public node getTail() { return tail ; } public void setTail(node tail) { this . tail = tail; } public int getSize() { return size ; } public void setSize( int size) { this . size = size; } }
FILE Statistic.java
CODE TO CALCULATE STATISTICS (MEAN, MEDIAN, MODE) ON
DATApackage com.ste.sembakoapp; import java.util.Arrays; public class Statistic { public static float mean( float [] m) { float sum = ; for ( int i = ; i < m. length ; i++) { sum += m[i]; } return sum / m. length ; } public static double median( float [] m) { int middle = m. length /
2 ;
Arrays.sort(m); if (m. length %
2 == 1 ) {
return m[middle]; } else { return (m[middle-
1 ] + m[middle]) / 2.0 ;
} } public static float mode( float a[]) { float maxValue= ; float maxCount= ; for ( int i = ; i < a. length ; ++i) { int count = ; for ( int j = ; j < a. length ; ++j) { if (a[j] == a[i]) ++count; } if (count > maxCount) { maxCount = count; maxValue = a[i]; } } return maxValue; } }
FILE activity_about.xml CODE FOR ABOUT DISPLAY ACTIVITY
<? xml version= "1.0" encoding= "utf-8" ?> <
RelativeLayout xmlns:android= "http://schemas.android.com/apk/res/android" xmlns:tools= "http://schemas.android.com/tools" android:layout_width= "match_parent" android:layout_height= "match_parent" android:paddingBottom= "@dimen/activity_vertical_margin" android:paddingLeft= "@dimen/activity_horizontal_margin" android:paddingRight= "@dimen/activity_horizontal_margin" android:paddingTop= "@dimen/activity_vertical_margin" > tools:context= "com.ste.sembakoapp.AboutActivity"
< TextView android :layout_width= "wrap_content" android :layout_height= "wrap_content"
android :textAppearance= "?android:attr/textAppearanceLarge"
android :text= "About" android :id= "@+id/textView2" android:layout_marginTop= "42dp" android:layout_alignParentTop= "true"/> android:layout_centerHorizontal= "true"
< TextView android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:textAppearance= "?android:attr/textAppearanceMedium" android:text= "Purpose of the application is for monitoring basic commodities price from Ministry of Trades Website" android:id= "@+id/textView3" android:layout_marginTop= "36dp" android:layout_below= "@+id/textView2"
/> android:layout_centerHorizontal= "true"
< TextView android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:textAppearance= "?android:attr/textAppearanceMedium" android:text= "Created By : Stefani Yuanita" android:id= "@+id/textView4" android:layout_below= "@+id/textView3" android:layout_centerHorizontal= "true"
/> android:layout_marginTop= "35dp"
</ > RelativeLayout
FILE activity_detail.xml CODE FOR ABOUT DETAIL ACTIVITY
Spinner
android :id= "@+id/result" android :layout_width= "wrap_content" android :layout_height= "wrap_content"
TextView
/> <
android :id= "@+id/getBtn" android :layout_width= "wrap_content" android :layout_height= "wrap_content" android :text= "Get Data"
android :layout_below= "@+id/item_spinner"
android :layout_centerHorizontal= "true" android :layout_marginTop= "41dp"Button
/> <
android :id= "@+id/item_spinner" android :layout_width= "fill_parent" android :layout_height= "wrap_content"
android :layout_below= "@+id/bulan_spinner"
android :layout_alignParentRight= "true" android :layout_alignParentEnd= "true" android :layout_marginTop= "33dp"<? xml version= "1.0" encoding= "utf-8" ?> <
ScrollView
android :id= "@+id/bulan_spinner" android :layout_width= "fill_parent" android :layout_height= "wrap_content"
android :layout_below= "@+id/tahun_spinner"
android :layout_alignParentLeft= "true" android :layout_alignParentStart= "true" android :layout_marginTop= "31dp"Spinner
android :id= "@+id/tahun_spinner" android :layout_width= "fill_parent" android :layout_height= "wrap_content" /> <
Spinner
> <
xmlns: android = "http://schemas.android.com/apk/res/android" xmlns: tools = "http://schemas.android.com/tools" android :layout_width= "match_parent" android :layout_height= "match_parent" android :paddingBottom= "@dimen/activity_vertical_margin" android :paddingLeft= "@dimen/activity_horizontal_margin" android :paddingRight= "@dimen/activity_horizontal_margin" android :paddingTop= "@dimen/activity_vertical_margin"
tools :context= "com.ste.sembakoapp.DetailActivity"
RelativeLayout
xmlns: android = "http://schemas.android.com/apk/res/android" android :layout_width= "match_parent" android :layout_height= "match_parent" android :fillViewport= "true"
>
</> <
android :text= "" android :textSize= "17sp" android :layout_marginTop= "57dp" android :layout_below= "@+id/getBtn"
android :layout_centerHorizontal= "true"
/> <
com.jjoe64.graphview.GraphView
android :layout_width= "match_parent" android :layout_height= "200dip" android :layout_below= "@id/result" android :id= "@+id/graph" /> </
RelativeLayout
> </
ScrollView
>
FILE activity_display.xml CODE FOR ABOUT DISPLAY ACTIVITY
ScrollView
<? xml version= "1.0" encoding= "utf-8" ?> <
RelativeLayout
xmlns: android = "http://schemas.android.com/apk/res/android" xmlns: tools = "http://schemas.android.com/tools" android :layout_width= "match_parent" android :layout_height= "match_parent" android :paddingBottom= "@dimen/activity_vertical_margin" android :paddingLeft= "@dimen/activity_horizontal_margin" android :paddingRight= "@dimen/activity_horizontal_margin" android :paddingTop= "@dimen/activity_vertical_margin" tools :context= "com.ste.sembakoapp.display" > <
Spinner
android :id= "@+id/tahun_spinner" android :layout_width= "fill_parent" android :layout_height= "wrap_content" /> <
Spinner
android :id= "@+id/bulan_spinner" android :layout_width= "fill_parent" android :layout_height= "wrap_content" android :layout_marginTop= "29dp"
android :layout_below= "@+id/tahun_spinner"
android :layout_alignParentRight= "true" android :layout_alignParentEnd= "true"/> <
Button
android :id= "@+id/getBtn" android :layout_width= "wrap_content" android :layout_height= "wrap_content"
xmlns: android = "http://schemas.android.com/apk/res/android" android :layout_width= "match_parent" android :layout_height= "match_parent" android :fillViewport= "true"
>
<android :text= "Get Data" android :layout_below= "@+id/bulan_spinner" android :layout_centerHorizontal= "true" /> <
TextView
android :id= "@+id/result"
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :text= "Result..." android :textSize= "17sp" android :layout_below= "@+id/getBtn" android :layout_centerHorizontal= "true" android :layout_marginTop= "27dp"/> </
RelativeLayout
> </
ScrollView
>
FILE activity_main.xml CODE FOR ABOUT MAIN ACTIVITY
RelativeLayout
xmlns: android = "http://schemas.android.com/apk/res/android" xmlns: tools = "http://schemas.android.com/tools" android :layout_width= "match_parent" android :layout_height= "match_parent" android :paddingBottom= "@dimen/activity_vertical_margin" android :paddingLeft= "@dimen/activity_horizontal_margin" android :paddingRight= "@dimen/activity_horizontal_margin"
android :paddingTop= "@dimen/activity_vertical_margin"
tools :context= "com.ste.sembakoapp.MainActivity"> <
Button
android :layout_width= "wrap_content" android :layout_height= "wrap_content" android :text= "Price Monitoring" android :id= "@+id/menu1" android :layout_marginTop= "56dp" android :layout_alignParentTop= "true" android :layout_centerHorizontal= "true" /> <
Button
android :layout_width= "wrap_content" android :layout_height= "wrap_content" android :text= "Detail Item" android :id= "@+id/menu2" android :layout_marginTop= "31dp" android :layout_below= "@+id/menu1" android :layout_alignRight= "@+id/menu1" android :layout_alignEnd= "@+id/menu1" android :layout_alignLeft= "@+id/menu1" android :layout_alignStart= "@+id/menu1" />
<? xml version= "1.0" encoding= "utf-8" ?> <
<
Button
android :layout_width= "wrap_content" android :layout_height= "wrap_content" android :text= "About" android :id= "@+id/menu3" android :layout_centerVertical= "true" android :layout_alignLeft= "@+id/menu2" android :layout_alignStart= "@+id/menu2" android :layout_alignRight= "@+id/menu2" android :layout_alignEnd= "@+id/menu2" /> </
RelativeLayout
>