为了方便往后APP开发的便捷程度,我们要自定义一个抽象的BaseActivity,用作Acitvity的基类,把一些常用的方法或者每个界面都需要的操作比如沉浸栏,标题栏等集成在里面,让每个Activity 继承BaseActivity,从而降低我们的工作量和代码结构。
本次BaseActivity的打造需要用到我上一篇 Android 沉浸式状态栏的解决方案的内容,请小伙伴点击链接先做第一部准备
BaseActivity的方法:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/* 以下是沉浸栏功能实现 */
//当FitsSystemWindows设置 true 时,会在屏幕最上方预留出状态栏高度的 padding
StatusBarUtil.setRootViewFitsSystemWindows(this, true);
//设置状态栏透明
StatusBarUtil.setTranslucentStatus(this);
//一般的手机的状态栏文字和图标都是白色的, 可如果你的应用也是纯白色的, 或导致状态栏文字看不清
//所以如果你是这种情况,请使用以下代码, 设置状态使用深色文字图标风格, 否则你可以选择性注释掉这个if内容
if (!StatusBarUtil.setStatusBarDarkTheme(this, true)) {
//如果不支持设置深色风格 为了兼容总不能让状态栏白白的看不清, 于是设置一个状态栏颜色为半透明,
//这样半透明+白=灰, 状态栏的文字能看得清
StatusBarUtil.setStatusBarColor(this, 0x55000000);
}
}
/*
*@创建者 Ben
*@创建时间 2019/7/21 23:56
*@描述 通用基类,集成了沉浸栏、自定义标题栏、跳转界面和Toast的简化操作
*/
public abstract class BaseActivity extends AppCompatActivity {
/**标题栏控件**/
private RelativeLayout base;
private RelativeLayout title;
private TextView base_back;
private TextView base_title;
private TextView base_right;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.base_titlebar);
findView();
//标题栏默认不显示,子类可以重写显示
showtitle(false);
//右边的按键默认不显示,子类可以重写显示
showBaseRight(false);
}
private void findView() {
base = findViewById(R.id.base);
title = findViewById(R.id.title);
base_back = findViewById(R.id.base_back);
base_title = findViewById(R.id.base_title);
base_right = findViewById(R.id.base_right);
//绑定返回按钮的点击事件
base_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
/**
* 重写setContentView,让继承者可以继续设置setContentView
* @param newid
*/
@Override
public void setContentView(int newid) {
View view = getLayoutInflater().inflate(newid, null);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
lp.addRule(RelativeLayout.BELOW, R.id.title);
if (null != base)
base.addView(view, lp);
}
/**
* 设置中间标题文字
* @param Text
*/
public void setBaseTitleText(CharSequence Text) {
if (base_title != null)
base_title.setText(Text);
}
/**
* 设置右边标题的文字
* @param Text
*/
public void setBaseRightText(CharSequence Text) {
if (base_right != null)
base_right.setText(Text);
}
/**
* 设置右边按钮是否显示
* @param show
*/
public void showBaseRight(boolean show) {
if (base_right != null) {
if (show)
base_right.setVisibility(View.VISIBLE);
else
base_right.setVisibility(View.GONE);
}
}
/**
* 设置标题栏是否显示
* @param show
*/
public void showtitle(boolean show) {
if (title != null) {
if (show)
title.setVisibility(View.VISIBLE);
else
title.setVisibility(View.GONE);
}
}
//找到返回控件,执行点击事件或更改背景等
public TextView getBaseBack() {
return base_back;
}
//找到标题控件,执行点击事件或更改背景等
public TextView getBaseTitle() {
return base_title;
}
//找到右侧按钮控件,执行点击事件或更改背景等
public TextView getBaseRight() {
return base_right;
}
下面列举一些常用的方法,大家可以举一反三,一般只需要设置标题栏的显示以及设置标题的文本即可使用
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//设置显示标题栏(在BaseActivity默认不显示,在子类需要调用就改为显示标题栏)
showtitle(true);
//设置标题名称
setBaseTitleText("我是标题");
//设置标题的点击事件
getBaseTitle().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
toastLong("点击了标题");
}
});
//是否显示右边按钮(默认不显示)
showBaseRight(true);
//设置右边按钮的背景图标
getBaseRight().setBackgroundResource(R.drawable.ic_back);
//设置右边按钮的点击事件
getBaseRight().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
toastLong("右边按钮点击");
}
});
}
public abstract class BaseActivity extends AppCompatActivity {
/**封装toast对象**/
private static Toast toast;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//onCreate方法不用改变
}
/**
* [页面跳转]
*/
public void startActivity(Class> clz) {
startActivity(clz, null);
}
/**
* [携带数据的页面跳转]
*/
public void startActivity(Class> clz, Bundle bundle) {
Intent intent = new Intent();
intent.setClass(this, clz);
if (bundle != null) {
intent.putExtras(bundle);
}
startActivity(intent);
}
/**
* [含有Bundle通过Class打开编辑界面]
*/
public void startActivityForResult(Class> cls, Bundle bundle, int requestCode) {
Intent intent = new Intent();
intent.setClass(this, cls);
if (bundle != null) {
intent.putExtras(bundle);
}
startActivityForResult(intent, requestCode);
}
/**
* * 此处是一个封装的Toast方法,可以取消掉上一次未完成的,直接进行下一次Toast
* * 有效解决类似MIUI系统显示toast自带app名称前缀
* * @param text 需要toast的内容
*/
public void toastShort(String text) {
if (toast != null) {
toast.cancel();
toast = Toast.makeText(this, "", Toast.LENGTH_SHORT);
toast.setText(text);
} else {
toast = Toast.makeText(this, "", Toast.LENGTH_SHORT);
toast.setText(text);
}
toast.show();
}
public void toastLong(String text) {
if (toast != null) {
toast.cancel();
toast = Toast.makeText(this, "", Toast.LENGTH_LONG);
toast.setText(text);
} else {
toast = Toast.makeText(this, "", Toast.LENGTH_LONG);
toast.setText(text);
}
toast.show();
}
public class MainActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Toast的简化使用
toastLong("我是长的消息框");
toastshort("我是短的消息框");
//普通页面跳转
startActivity(Test.class);
//携带数据的页面跳转
Bundle bundle=new Bundle();
bundle.putString("key","qqq");
bundle.putString("key1","qqw");
bundle.putString("key2","www");
startActivity(Test.class,bundle);
}
当你控件很多,你又懒得写findViewById()以及onClick点击事件。那么Android-butterknife-zelezny插件就是解决这个重复机械性的问题。
Android-butterknife-zelezny 是根据Butter Knife定制的一款插件,能够方便快速初始化控件
简单来说,当你的布局中有多个控件的时候,这个插件能够快速帮你创建好初始化控件以及onClick代码
Butter Knife的GitHub链接
在app里面的buid.gradle加入依赖
android {
...
// Butterknife requires Java 8.
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
...
implementation 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
...
}
在Project里面的buid.gradle加入依赖
buildscript {
repositories {
mavenCentral()
google()
}
dependencies {
classpath 'com.jakewharton:butterknife-gradle-plugin:10.1.0'
}
}
打开AS,点击左上角的菜单 file—>setting—>plugins—>Marketplace 然后输入butterknife-zelezny.点击安装重启
进行以上操作后,我们就能使用这个插件了,注意,使用的时候,光标一定要放在布局文件处!!!!
效果如下
/*
*@创建者 Ben
*@创建时间 2019/7/21 23:56
*@描述 通用基类,集成了沉浸栏、自定义标题栏、跳转界面和Toast的简化操作
*/
public abstract class BaseActivity extends AppCompatActivity {
/**封装toast对象**/
private static Toast toast;
/**标题栏**/
private RelativeLayout base;
private RelativeLayout title;
private TextView base_back;
private TextView base_title;
private TextView base_right;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.base_titlebar);
findView();
//标题栏默认不显示,子类可以重写显示
showtitle(false);
//右边的按键默认不显示,子类可以重写显示
showBaseRight(false);
/* 以下是沉浸栏功能实现 */
//当FitsSystemWindows设置 true 时,会在屏幕最上方预留出状态栏高度的 padding
StatusBarUtil.setRootViewFitsSystemWindows(this, true);
//设置状态栏透明
StatusBarUtil.setTranslucentStatus(this);
//一般的手机的状态栏文字和图标都是白色的, 可如果你的应用也是纯白色的, 或导致状态栏文字看不清
//所以如果你是这种情况,请使用以下代码, 设置状态使用深色文字图标风格, 否则你可以选择性注释掉这个if内容
if (!StatusBarUtil.setStatusBarDarkTheme(this, true)) {
//如果不支持设置深色风格 为了兼容总不能让状态栏白白的看不清, 于是设置一个状态栏颜色为半透明,
//这样半透明+白=灰, 状态栏的文字能看得清
StatusBarUtil.setStatusBarColor(this, 0x55000000);
}
}
private void findView() {
base = findViewById(R.id.base);
title = findViewById(R.id.title);
base_back = findViewById(R.id.base_back);
base_title = findViewById(R.id.base_title);
base_right = findViewById(R.id.base_right);
base_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
/**
* 重点是重写setContentView,让继承者可以继续设置setContentView
* 重写setContentView
*
* @param newid
*/
@Override
public void setContentView(int newid) {
View view = getLayoutInflater().inflate(newid, null);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
lp.addRule(RelativeLayout.BELOW, R.id.title);
if (null != base)
base.addView(view, lp);
}
/**
* 设置中间标题文字
*
* @param Text
*/
public void setBaseTitleText(CharSequence Text) {
if (base_title != null)
base_title.setText(Text);
}
/**
* 设置右边标题
*
* @param Text
*/
public void setBaseRightText(CharSequence Text) {
if (base_right != null)
base_right.setText(Text);
}
/**
* 设置右边按钮是否显示
*
* @param show
*/
public void showBaseRight(boolean show) {
if (base_right != null) {
if (show)
base_right.setVisibility(View.VISIBLE);
else
base_right.setVisibility(View.GONE);
}
}
/**
* 设置标题栏是否显示
*
* @param show
*/
public void showtitle(boolean show) {
if (title != null) {
if (show)
title.setVisibility(View.VISIBLE);
else
title.setVisibility(View.GONE);
}
}
//找到返回控件,执行点击事件或更改背景等
public TextView getBaseBack() {
return base_back;
}
//找到标题控件,执行点击事件或更改背景等
public TextView getBaseTitle() {
return base_title;
}
//找到右侧按钮控件,执行点击事件或更改背景等
public TextView getBaseRight() {
return base_right;
}
/**
* [页面跳转]
*/
public void startActivity(Class> clz) {
startActivity(clz, null);
}
/**
* [携带数据的页面跳转]
*/
public void startActivity(Class> clz, Bundle bundle) {
Intent intent = new Intent();
intent.setClass(this, clz);
if (bundle != null) {
intent.putExtras(bundle);
}
startActivity(intent);
}
/**
* [含有Bundle通过Class打开编辑界面]
*/
public void startActivityForResult(Class> cls, Bundle bundle, int requestCode) {
Intent intent = new Intent();
intent.setClass(this, cls);
if (bundle != null) {
intent.putExtras(bundle);
}
startActivityForResult(intent, requestCode);
}
/**
* * 此处是一个封装的Toast方法,可以取消掉上一次未完成的,直接进行下一次Toast
* * 有效解决类似MIUI系统显示toast自带app名称前缀
* * @param text 需要toast的内容
*/
public void toastShort(String text) {
if (toast != null) {
toast.cancel();
toast = Toast.makeText(this, "", Toast.LENGTH_SHORT);
toast.setText(text);
} else {
toast = Toast.makeText(this, "", Toast.LENGTH_SHORT);
toast.setText(text);
}
toast.show();
}
public void toastLong(String text) {
if (toast != null) {
toast.cancel();
toast = Toast.makeText(this, "", Toast.LENGTH_LONG);
toast.setText(text);
} else {
toast = Toast.makeText(this, "", Toast.LENGTH_LONG);
toast.setText(text);
}
toast.show();
}
}
没有集成自定义标题栏,如果需要的话,只需要在onStart()方法里面写上代码就行
/*
*@创建者 Ben
*@创建时间 2019/7/21 23:56
*/
public abstract class BaseFragment extends Fragment {
/***封装toast对象**/
private static Toast toast;
@Override
public void onStart() {
super.onStart();
//这里注意下 因为在评论区发现有网友调用setRootViewFitsSystemWindows 里面 winContent.getChildCount()=0 导致代码无法继续
//是因为你需要在setContentView之后才可以调用 setRootViewFitsSystemWindows
//当FitsSystemWindows设置 true 时,会在屏幕最上方预留出状态栏高度的 padding
StatusBarUtil.setRootViewFitsSystemWindows(getActivity(), true);
//设置状态栏透明
StatusBarUtil.setTranslucentStatus(getActivity());
//一般的手机的状态栏文字和图标都是白色的, 可如果你的应用也是纯白色的, 或导致状态栏文字看不清
//所以如果你是这种情况,请使用以下代码, 设置状态使用深色文字图标风格, 否则你可以选择性注释掉这个if内容
if (!StatusBarUtil.setStatusBarDarkTheme(getActivity(), true)) {
//如果不支持设置深色风格 为了兼容总不能让状态栏白白的看不清, 于是设置一个状态栏颜色为半透明,
//这样半透明+白=灰, 状态栏的文字能看得清
StatusBarUtil.setStatusBarColor(getActivity(), 0x55000000);
}
}
/**
* [页面跳转]
*/
public void startActivity(Class> clz) {
startActivity(clz, null);
}
/**
* [携带数据的页面跳转]
*/
public void startActivity(Class> clz, Bundle bundle) {
Intent intent = new Intent();
intent.setClass(getActivity(), clz);
if (bundle != null) {
intent.putExtras(bundle);
}
startActivity(intent);
}
/**
* [含有Bundle通过Class打开编辑界面]
*/
public void startActivityForResult(Class> cls, Bundle bundle, int requestCode) {
Intent intent = new Intent();
intent.setClass(getActivity(), cls);
if (bundle != null) {
intent.putExtras(bundle);
}
startActivityForResult(intent, requestCode);
}
/**
* * 此处是一个封装的Toast方法,可以取消掉上一次未完成的,直接进行下一次Toast
* * @param context context
* * @param text 需要toast的内容
*
*/
public void Toastshort(String text) {
if (toast != null) {
toast.cancel();
toast = Toast.makeText(getActivity(), "", Toast.LENGTH_SHORT);
toast.setText(text);
} else {
toast = Toast.makeText(getActivity(), "", Toast.LENGTH_SHORT);
toast.setText(text);
}
toast.show();
}
public void Toastlong(String text) {
if (toast != null) {
toast.cancel();
toast = Toast.makeText(getActivity(), "", Toast.LENGTH_LONG);
toast.setText(text);
} else {
toast = Toast.makeText(getActivity(), "", Toast.LENGTH_LONG);
toast.setText(text);
}
toast.show();
}
}
其实和BaseActivity一样,只是改了
StatusBarUtil.setRootViewFitsSystemWindows(this, false); //BaseActivity是true(预留出状态栏高度的 padding)
/*
*@创建者 Ben
*@创建时间 2019/7/21 23:56
*/
public abstract class BaseActivityPicture extends AppCompatActivity {
/**封装toast对象**/
private static Toast toast;
/**标题栏**/
private RelativeLayout base;
private RelativeLayout title;
private TextView base_back;
private TextView base_title;
private TextView base_right;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.base_titlebar);
findView();
//标题栏默认不显示,子类可以重写显示
showtitle(false);
//右边的按键默认不显示,子类可以重写显示
showBaseRight(false);
/* 以下是沉浸栏功能实现 */
//当FitsSystemWindows设置 true 时,会在屏幕最上方预留出状态栏高度的 padding
StatusBarUtil.setRootViewFitsSystemWindows(this, false);
//设置状态栏透明
StatusBarUtil.setTranslucentStatus(this);
//一般的手机的状态栏文字和图标都是白色的, 可如果你的应用也是纯白色的, 或导致状态栏文字看不清
//所以如果你是这种情况,请使用以下代码, 设置状态使用深色文字图标风格, 否则你可以选择性注释掉这个if内容
if (!StatusBarUtil.setStatusBarDarkTheme(this, true)) {
//如果不支持设置深色风格 为了兼容总不能让状态栏白白的看不清, 于是设置一个状态栏颜色为半透明,
//这样半透明+白=灰, 状态栏的文字能看得清
StatusBarUtil.setStatusBarColor(this, 0x55000000);
}
}
private void findView() {
base = findViewById(R.id.base);
title = findViewById(R.id.title);
base_back = findViewById(R.id.base_back);
base_title = findViewById(R.id.base_title);
base_right = findViewById(R.id.base_right);
base_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
/**
* 重点是重写setContentView,让继承者可以继续设置setContentView
* 重写setContentView
*
* @param newid
*/
@Override
public void setContentView(int newid) {
View view = getLayoutInflater().inflate(newid, null);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
lp.addRule(RelativeLayout.BELOW, R.id.title);
if (null != base)
base.addView(view, lp);
}
/**
* 设置中间标题文字
*
* @param Text
*/
public void setBaseTitleText(CharSequence Text) {
if (base_title != null)
base_title.setText(Text);
}
/**
* 设置右边标题
*
* @param Text
*/
public void setBaseRightText(CharSequence Text) {
if (base_right != null)
base_right.setText(Text);
}
/**
* 设置右边按钮是否显示
*
* @param show
*/
public void showBaseRight(boolean show) {
if (base_right != null) {
if (show)
base_right.setVisibility(View.VISIBLE);
else
base_right.setVisibility(View.GONE);
}
}
/**
* 设置标题栏是否显示
*
* @param show
*/
public void showtitle(boolean show) {
if (title != null) {
if (show)
title.setVisibility(View.VISIBLE);
else
title.setVisibility(View.GONE);
}
}
//找到返回控件,执行点击事件或更改背景等
public TextView getBaseBack() {
return base_back;
}
//找到标题控件,执行点击事件或更改背景等
public TextView getBaseTitle() {
return base_title;
}
//找到右侧按钮控件,执行点击事件或更改背景等
public TextView getBaseRight() {
return base_right;
}
/**
* [页面跳转]
*/
public void startActivity(Class> clz) {
startActivity(clz, null);
}
/**
* [携带数据的页面跳转]
*/
public void startActivity(Class> clz, Bundle bundle) {
Intent intent = new Intent();
intent.setClass(this, clz);
if (bundle != null) {
intent.putExtras(bundle);
}
startActivity(intent);
}
/**
* [含有Bundle通过Class打开编辑界面]
*/
public void startActivityForResult(Class> cls, Bundle bundle, int requestCode) {
Intent intent = new Intent();
intent.setClass(this, cls);
if (bundle != null) {
intent.putExtras(bundle);
}
startActivityForResult(intent, requestCode);
}
/**
* * 此处是一个封装的Toast方法,可以取消掉上一次未完成的,直接进行下一次Toast
* * 有效解决类似MIUI系统显示toast自带app名称前缀
* * @param text 需要toast的内容
*/
public void toastShort(String text) {
if (toast != null) {
toast.cancel();
toast = Toast.makeText(this, "", Toast.LENGTH_SHORT);
toast.setText(text);
} else {
toast = Toast.makeText(this, "", Toast.LENGTH_SHORT);
toast.setText(text);
}
toast.show();
}
public void toastLong(String text) {
if (toast != null) {
toast.cancel();
toast = Toast.makeText(this, "", Toast.LENGTH_LONG);
toast.setText(text);
} else {
toast = Toast.makeText(this, "", Toast.LENGTH_LONG);
toast.setText(text);
}
toast.show();
}
}
没有集成自定义标题栏,如果需要的话,只需要在onStart()方法里面写上代码就行
其实和BaseActivityPicture一样,改了
StatusBarUtil.setRootViewFitsSystemWindows(this, false); //BasFragment是true(预留出状态栏高度的 padding)
/*
*@创建者 Ben
*@创建时间 2019/7/21 23:56
*/
public abstract class BaseFragmentPicture extends Fragment {
/***封装toast对象**/
private static Toast toast;
@Override
public void onStart() {
super.onStart();
//这里注意下 因为在评论区发现有网友调用setRootViewFitsSystemWindows 里面 winContent.getChildCount()=0 导致代码无法继续
//是因为你需要在setContentView之后才可以调用 setRootViewFitsSystemWindows
//当FitsSystemWindows设置 true 时,会在屏幕最上方预留出状态栏高度的 padding
StatusBarUtil.setRootViewFitsSystemWindows(getActivity(), false);
//设置状态栏透明
StatusBarUtil.setTranslucentStatus(getActivity());
//一般的手机的状态栏文字和图标都是白色的, 可如果你的应用也是纯白色的, 或导致状态栏文字看不清
//所以如果你是这种情况,请使用以下代码, 设置状态使用深色文字图标风格, 否则你可以选择性注释掉这个if内容
if (!StatusBarUtil.setStatusBarDarkTheme(getActivity(), true)) {
//如果不支持设置深色风格 为了兼容总不能让状态栏白白的看不清, 于是设置一个状态栏颜色为半透明,
//这样半透明+白=灰, 状态栏的文字能看得清
StatusBarUtil.setStatusBarColor(getActivity(), 0x55000000);
}
}
/**
* [页面跳转]
*/
public void startActivity(Class> clz) {
startActivity(clz, null);
}
/**
* [携带数据的页面跳转]
*/
public void startActivity(Class> clz, Bundle bundle) {
Intent intent = new Intent();
intent.setClass(getActivity(), clz);
if (bundle != null) {
intent.putExtras(bundle);
}
startActivity(intent);
}
/**
* [含有Bundle通过Class打开编辑界面]
*/
public void startActivityForResult(Class> cls, Bundle bundle, int requestCode) {
Intent intent = new Intent();
intent.setClass(getActivity(), cls);
if (bundle != null) {
intent.putExtras(bundle);
}
startActivityForResult(intent, requestCode);
}
/**
* * 此处是一个封装的Toast方法,可以取消掉上一次未完成的,直接进行下一次Toast
* * @param context context
* * @param text 需要toast的内容
*
*/
public void Toastshort(String text) {
if (toast != null) {
toast.cancel();
toast = Toast.makeText(getActivity(), "", Toast.LENGTH_SHORT);
toast.setText(text);
} else {
toast = Toast.makeText(getActivity(), "", Toast.LENGTH_SHORT);
toast.setText(text);
}
toast.show();
}
public void Toastlong(String text) {
if (toast != null) {
toast.cancel();
toast = Toast.makeText(getActivity(), "", Toast.LENGTH_LONG);
toast.setText(text);
} else {
toast = Toast.makeText(getActivity(), "", Toast.LENGTH_LONG);
toast.setText(text);
}
toast.show();
}
}