Fragment要点
- Fragment作为Activity界面的一部分组成出现
- 可以在一个Activity中同时出现多个Fragment,并且,一个Fragment亦可在多个Activity中使用。
- 在Activity运行过程中,可以添加、移除或者替换Fragment(add()、remove()、replace())
- Fragment可以响应自己的输入事件,并且有自己的生命周期,当然,它们的生命周期直接被其所属的宿主activity的生命周期影响
1 MainActivity
package com.epapelectricity.activity;
import com.epapelectricity.R;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTabHost;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.TabHost.TabSpec;
public class MainActivity extends FragmentActivity{
// 定义FragmentTabHost对象
private FragmentTabHost mTabHost;
// 定义一个布局
private LayoutInflater layoutInflater;
// 定义数组来存放Fragment界面
private Class fragmentArray[] = { TaskFregment.class,MapFregment.class,ConfigFregment.class };
// 定义数组来存放按钮图片
private int mImageViewArray[] = { R.drawable.main_navigation_task,R.drawable.main_navigation_map,R.drawable.main_navigation_config };
// Tab选项卡的文字
private String mTextviewArray[] = { "我的任务","巡视地图","系统设置"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
initView();
}
private void initView() {
// 实例化布局对象
layoutInflater = LayoutInflater.from(this);
// 实例化TabHost对象,得到TabHost
mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
// 得到fragment的个数
int count = fragmentArray.length;
for (int i = 0; i < count; i++) {
// 为每一个Tab按钮设置图标、文字和内容
TabSpec tabSpec = mTabHost.newTabSpec(mTextviewArray[i])
.setIndicator(getTabItemView(i));
// 将Tab按钮添加进Tab选项卡中
mTabHost.addTab(tabSpec, fragmentArray[i], null);
// 设置Tab按钮的背景
mTabHost.getTabWidget().getChildAt(i)
.setBackgroundResource(R.drawable.selector_tab_background);
}
}
/**
* 给Tab按钮设置图标和文字
*/
private View getTabItemView(int index) {
View view = layoutInflater.inflate(R.layout.tab_item_view, null);
ImageView imageView = (ImageView) view.findViewById(R.id.imageview);
imageView.setImageResource(mImageViewArray[index]);
TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(mTextviewArray[index]);
return view;
}
@Override
protected void onResume() {
super.onResume();
}
}
2 main_activity
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@+id/realtabcontent"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
></FrameLayout>
<android.support.v4.app.FragmentTabHost
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/maintab_toolbar_bg"
>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0" />
</android.support.v4.app.FragmentTabHost>
</LinearLayout>
3 ConfigFregment
package com.epapelectricity.activity;
import java.util.UUID;
import org.json.JSONArray;
import org.json.JSONException;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.telephony.TelephonyManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import com.epapelectricity.R;
import com.epapelectricity.common.StringUtil;
import com.epapelectricity.db.NetworkService;
import com.epapelectricity.domain.Network;
import com.epapelectricity.service.SocketClient;
import com.epapelectricity.service.SysDatabaseService;
import com.epapelectricity.ui.LoadingDialog;
public class ConfigFregment extends Fragment implements
Runnable{
private Button btnNetworkSubmit, btnDataSync, btnBack = null;
EditText editDeptCode, editNnetwork, editNport, editWnetwork, editWport,
editUsePerson, editSOCKETPORT;
CheckBox chkWisup;
RadioButton rbtSocketmode, rbtHttpmode;
RadioGroup rdgUpmode;
NetworkService networkservice = null;
private Boolean ShowBackup = false;
Boolean checkNetwork = false;
private LoadingDialog mProgressDialog;
// 声明handlerThread
Handler mHandler = new Handler();
public void setShowBackup(Boolean showBackup) {
ShowBackup = showBackup;
}
private Context mContext;
private Handler downloadHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
if(1 == msg.what){
//下载基础数据成功
Toast.makeText(mContext, "下载成功!",
Toast.LENGTH_SHORT).show();
}else if(0 == msg.what){
Toast.makeText(mContext, "网络连接失败,请检查网络!",
Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(mContext, "网络连接失败,请检查网络!",
Toast.LENGTH_SHORT).show();
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mContext = getActivity();
return inflater.inflate(R.layout.config_fregment, null);
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
@Override
public void onDestroyView() {
// TODO Auto-generated method stub
super.onDestroyView();
}
@Override
public void onResume() {
// TODO Auto-generated method stub
super.onResume();
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onViewCreated(view, savedInstanceState);
init(view);
}
private void init(View view){
editDeptCode = (EditText) view.findViewById(R.id.editDeptCode); // 当前工区号
editDeptCode.requestFocus();
editNnetwork = (EditText) view.findViewById(R.id.editNnetwork); // 内网IP
editNport = (EditText) view.findViewById(R.id.editNport); // 内网端口号
editWnetwork = (EditText) view.findViewById(R.id.editWnetwork); // 外网IP
editWport = (EditText) view.findViewById(R.id.editWport); // 外网端口号
chkWisup = (CheckBox) view.findViewById(R.id.chkWisup); // 是否自动上传
btnNetworkSubmit = (Button) view.findViewById(R.id.btnNetworkSubmit); // 网络设置确定按钮
btnBack = (Button) view.findViewById(R.id.btnBack);
btnDataSync = (Button) view.findViewById(R.id.btnDataSync);
networkservice = new NetworkService(mContext);
if (!ShowBackup)
btnBack.setVisibility(Button.INVISIBLE);
; // 隐藏控件
if (networkservice.getCount() == 0) {
Network network = new Network();
network.setID(1);
network.setDeptCode("0003430701");
network.setNnotwork("10.48.128.170");
network.setNport(81);
network.setWnotwork("0.0.0.2");
network.setWport(8002);
network.setWisup(0);
network.setHandleSetNo(GetDeviceID());
network.setUpmode(2);// 默认为Socket
network.setSocketPort(9999);
networkservice.add(network);
}
Network network = networkservice.getNetwork();
if (network != null) {
editDeptCode.setText(network.getDeptCode());
editNnetwork.setText(network.getNnotwork());
editNport.setText(network.getNport().toString());
editWnetwork.setText(network.getWnotwork().toString());
editWport.setText(network.getWport().toString());
editSOCKETPORT.setText(network.getSocketPort().toString());
if (0 == network.getWisup()) {
chkWisup.setChecked(false);
} else if (1 == network.getWisup()) {
chkWisup.setChecked(true);
}
Integer Upmode = network.getUpmode();
if (Upmode == 1) {
rbtHttpmode.setChecked(true);
} else {
rbtSocketmode.setChecked(true);
}
}
//返回
btnBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent();
intent.setClass(mContext, LoginActivity.class);
mContext.startActivity(intent);
}
});
// 网络设置
btnNetworkSubmit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
Network network = new Network();
network.setID(1);
if(StringUtil.stringIsEmpty(editDeptCode.getText().toString())){
Toast.makeText(mContext, "当前工区号不能为空!",
Toast.LENGTH_SHORT).show();
return;
}
network.setDeptCode(editDeptCode.getText().toString());
if(StringUtil.stringIsEmpty(editNnetwork.getText().toString())){
Toast.makeText(mContext, "内网IP不能为空!",
Toast.LENGTH_SHORT).show();
return;
}
network.setNnotwork(editNnetwork.getText().toString());
if(StringUtil.stringIsEmpty(editNport.getText()
.toString())){
Toast.makeText(mContext, "内网端口号不能为空!",
Toast.LENGTH_SHORT).show();
return;
}
network.setNport(Integer.parseInt(editNport.getText()
.toString()));
if(StringUtil.stringIsEmpty(editSOCKETPORT
.getText().toString())){
Toast.makeText(mContext, "Shocket端口号不能为空!",
Toast.LENGTH_SHORT).show();
return;
}
network.setSocketPort(Integer.parseInt(editSOCKETPORT
.getText().toString()));
if(StringUtil.stringIsEmpty(editWnetwork.getText().toString())){
Toast.makeText(mContext, "外网IP不能为空!",
Toast.LENGTH_SHORT).show();
return;
}
network.setWnotwork(editWnetwork.getText().toString());
if(StringUtil.stringIsEmpty(editWport.getText()
.toString())){
Toast.makeText(mContext, "外网端口号不能为空!",
Toast.LENGTH_SHORT).show();
return;
}
network.setWport(Integer.parseInt(editWport.getText()
.toString()));
network.setHandleSetNo(GetDeviceID());
if (true == chkWisup.isChecked()) {
network.setWisup(1);
} else {
network.setWisup(0);
}
Integer upmode = 0;
if (rbtHttpmode.isChecked()) {
upmode = 1;
}
if (rbtSocketmode.isChecked()) {
upmode = 2;
}
network.setUpmode(upmode);
networkservice.update(network);
Toast.makeText(mContext, "操作成功!",
Toast.LENGTH_SHORT).show();
} catch (Exception ex) {
Toast.makeText(mContext, "操作失败!",
Toast.LENGTH_SHORT).show();
}
}
});
// 基础数据同步
btnDataSync.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(StringUtil.stringIsEmpty(editDeptCode.getText().toString())){
Toast.makeText(mContext, "当前工区号不能为空!",
Toast.LENGTH_SHORT).show();
return;
}
if(StringUtil.stringIsEmpty(editNnetwork.getText().toString())){
Toast.makeText(mContext, "内网IP不能为空!",
Toast.LENGTH_SHORT).show();
return;
}
if(StringUtil.stringIsEmpty(editNport.getText()
.toString())){
Toast.makeText(mContext, "内网端口号不能为空!",
Toast.LENGTH_SHORT).show();
return;
}
if(StringUtil.stringIsEmpty(editSOCKETPORT
.getText().toString())){
Toast.makeText(mContext, "Shocket端口号不能为空!",
Toast.LENGTH_SHORT).show();
return;
}
if(StringUtil.stringIsEmpty(editWnetwork.getText().toString())){
Toast.makeText(mContext, "外网IP不能为空!",
Toast.LENGTH_SHORT).show();
return;
}
if(StringUtil.stringIsEmpty(editWport.getText()
.toString())){
Toast.makeText(mContext, "外网端口号不能为空!",
Toast.LENGTH_SHORT).show();
return;
}
ShowDialog("正在同步基础数据...",false);
new Thread(new Runnable() {
@Override
public void run() {
// 下载基础数据
try {
Integer upmode = 0;
String ServerIP = editNnetwork.getText().toString();
Integer socketPort = Integer
.parseInt(editSOCKETPORT.getText()
.toString());
if (rbtHttpmode.isChecked()) {
// http
upmode=1;
checkNetwork = true;
}
if (rbtSocketmode.isChecked()) {
// socket
upmode=2;
if (SocketClient.CheckSocketClient(ServerIP,
socketPort)) {
checkNetwork = true;
}
}
if (checkNetwork) {
int flag = downLoadBaseData(upmode);
if(1 == flag){
checkNetwork = true;
}else {
checkNetwork = false;
}
} else {
DismissDialog();
}
} catch (JSONException e) {
e.printStackTrace();
}
mHandler.post(new Runnable() {
public void run() {
btnBack.setVisibility(Button.VISIBLE);
}
});
DismissDialog();
if (checkNetwork) {
//下载成功
downloadHandler.sendEmptyMessage(1);
} else {
downloadHandler.sendEmptyMessage(0);
}
}
}).start();
}
});
}
@Override
public void run() {
}
/**
* 获取设备序列号。
*
* @return
*/
public String GetDeviceID() {
final TelephonyManager tm = (TelephonyManager) mContext.getApplicationContext()
.getSystemService(Context.TELEPHONY_SERVICE);
final String tmDevice, tmSerial, tmPhone, androidId;
tmDevice = "" + tm.getDeviceId();
tmSerial = "" + tm.getSimSerialNumber();
androidId = ""
+ android.provider.Settings.Secure.getString(
mContext.getApplicationContext().getContentResolver(),
android.provider.Settings.Secure.ANDROID_ID);
UUID deviceUuid = new UUID(androidId.hashCode(),
((long) tmDevice.hashCode() << 32) | tmSerial.hashCode());
String uniqueId = deviceUuid.toString();
return uniqueId;
}
public void ShowDialog(String title, boolean cancleable) {
if (StringUtil.stringIsEmpty(title)) {
title = "加载中...";
}
if (mProgressDialog == null) {
mProgressDialog = new LoadingDialog(getActivity(), title,
cancleable);
mProgressDialog.setCancelable(cancleable);
} else {
mProgressDialog.setCancelable(cancleable);
mProgressDialog.setText(title);
}
mProgressDialog.show();
}
public void DismissDialog() {
if (mProgressDialog == null || !mProgressDialog.isShowing())
return;
mProgressDialog.dismiss();
}
/**
* 下载基础数据
* @param 下载方式 http socket
* @return 0 下载失败 1 下载成功
* */
private int downLoadBaseData(Integer Upmode) throws JSONException {
// 创建下载数据服务类对象
SysDatabaseService sysDatabaseService = new SysDatabaseService(
mContext);
/**
* 只下一次基础数据,在任务的时候。
*/
JSONArray JsonArrayDefectType = null, JsonArrayDefectReason = null, JsonArraySite = null, JsonArrayUpdown = null, JsonArrayDevclass = null, JsonArrayUserAndEmp = null;
if (Upmode == 2) {
String ServerIP = editNnetwork.getText().toString();
Integer socketPort = Integer.parseInt(editSOCKETPORT.getText()
.toString());
SocketClient socketClient = new SocketClient(ServerIP, socketPort);
String result = socketClient.sendMsg("DefectType");
if(!result.equals("")) JsonArrayDefectType = new JSONArray(result);
result = socketClient.sendMsg("DefectReason");
if(!result.equals("")) JsonArrayDefectReason = new JSONArray(result);
result = socketClient.sendMsg("Site|"
+ editDeptCode.getText().toString());
if(!result.equals("")) JsonArraySite = new JSONArray(result);
result = socketClient.sendMsg("Updown");
if(!result.equals("")) JsonArrayUpdown = new JSONArray(result);
result = socketClient.sendMsg("Devclass");
if(!result.equals("")) JsonArrayDevclass = new JSONArray(result);
result = socketClient.sendMsg("UserAndEmp|"
+ editDeptCode.getText().toString());
if(!result.equals("")) JsonArrayUserAndEmp = new JSONArray(result);
socketClient.closeSocketOutPut();
socketClient.closeSocket();
}
if(null == JsonArrayDefectType || null == JsonArrayDefectReason || null == JsonArraySite || null == JsonArrayUpdown
|| null == JsonArrayDevclass || null == JsonArrayUserAndEmp){
return 0;
}else if(0 == JsonArrayDefectType.length() || 0 == JsonArrayDefectReason.length() || 0 == JsonArraySite.length()
|| 0== JsonArrayDevclass.length() || 0 == JsonArrayUserAndEmp.length()
){
return 0;
}
else {
boolean result = false;
result = sysDatabaseService.WriteBaseData(JsonArrayDefectType,
JsonArrayDefectReason, JsonArraySite, JsonArrayUpdown,
JsonArrayDevclass, JsonArrayUserAndEmp);
if(result){
return 1;
}else {
return 0;
}
}
}
}
4 config_fregment
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
style="@style/top_title_style"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:id="@+id/textView12"
style="@style/top_title_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/system_configuration" />
</LinearLayout>
</LinearLayout>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="none"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_marginTop="15dp"
android:gravity="top|center"
android:orientation="vertical" >
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="top|center"
android:dividerPadding="10dp">
<TableRow
android:id="@+id/tableRow20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="0dp"
android:layout_weight="2"
android:gravity="center" >
<TextView
android:id="@+id/textView10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/current_labor_code"
android:textSize="@dimen/defect_add_font_size"
/>
<EditText
android:id="@+id/editDeptCode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:focusable="true"
android:focusableInTouchMode="true"
android:inputType="numberSigned"
>
<requestFocus
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</EditText>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:layout_marginTop="10dp"
android:gravity="center" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/inner_network_ip"
android:textSize="@dimen/defect_add_font_size"/>
<EditText
android:id="@+id/editNnetwork"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="number"
android:digits=".0123456789">
<requestFocus />
</EditText>
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:gravity="center"
android:layout_marginTop="10dp">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/inner_network_portNumber"
android:textSize="@dimen/defect_add_font_size"/>
<EditText
android:id="@+id/editNport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberSigned">
<requestFocus />
</EditText>
</TableRow>
<TableRow
android:id="@+id/tableRow13"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:gravity="center"
android:layout_marginTop="10dp">
<TextView
android:id="@+id/textView15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/socketname_colon"
android:textSize="@dimen/defect_add_font_size"/>
<EditText
android:id="@+id/editSOCKETPORT"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberSigned" >
<requestFocus />
</EditText>
</TableRow>
<TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:gravity="center"
android:layout_marginTop="10dp">
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="外网IP:"
android:textSize="@dimen/defect_add_font_size"/>
<EditText
android:id="@+id/editWnetwork"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="number"
android:digits=".0123456789"
>
<requestFocus />
</EditText>
</TableRow>
<TableRow
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:gravity="center"
android:layout_marginTop="10dp" >
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/outer_network_portNumber"
android:textSize="@dimen/defect_add_font_size"/>
<EditText
android:id="@+id/editWport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberSigned">
<requestFocus />
</EditText>
</TableRow>
<TableRow
android:id="@+id/tableRow6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:gravity="center"
android:layout_marginTop="10dp">
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="是否自动上传:"
android:textSize="@dimen/defect_add_font_size"/>
<CheckBox
android:id="@+id/chkWisup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:text="" />
</TableRow>
</TableLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center_vertical|center"
android:orientation="horizontal"
android:layout_marginTop="10dp">
<TextView
android:id="@+id/textView16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/upmodename"
android:textSize="@dimen/defect_add_font_size"/>
<RadioGroup
android:id="@+id/rdgUpmode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/rbtHttpmode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:text="@string/httpmodename" >
</RadioButton>
<RadioButton
android:id="@+id/rbtSocketmode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="@string/socketmodename" >
</RadioButton>
</RadioGroup>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_marginTop="40dp">
<Button
android:id="@+id/btnNetworkSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/network_Settings"
android:textSize="@dimen/button_textsize"/>
<Button
android:id="@+id/btnDataSync"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/basic_data_synchronization"
android:textSize="@dimen/button_textsize"/>
<Button
android:id="@+id/btnBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/back"
android:textSize="@dimen/button_textsize"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>