如何在扩展它的活动中获取BaseActivity的视图?

时间:2017-05-17 14:50:48

标签: android android-activity

我有一个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);


            }

1 个答案:

答案 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);