我有一个BaseActivity,其中包含所有必要的连接更改代码,我在所有活动中实现了这一点。
由于我想向用户展示使用snackbar的连接状态,我需要Activity的根布局,我认为它可能是BaseActivity。所以我需要在所有其他活动中使用rootlayout来显示小吃吧。
if(connectivityEvent.getState().getValue() == ConnectivityState.CONNECTED){
Log.d("connectivity", "Connected");
showsnackbar(rootlayout, "Internet Detected", R.color.transaction_failed);
}else {
Log.d("connectivity", "Not Connected ");
showsnackbar(rootlayout, "No Internet Detected", R.color.transaction_failed);
}
答案 0 :(得分:2)
使用abstract
方法。您的BaseActivity
看起来像这样
public abstract class BaseActivity extends Activity{
protected abstract getRootLayout();
}
现在扩展Activity
的每个BaseActivity
都必须填写getRootLayout
方法,您可以在BaseActivity
中使用该方法来显示小吃店,例如
showsnackbar(getRootLayout(), "No Internet Detected", R.color.transaction_failed);