В настоящее время я работаю над приложением для чтения новостей, в котором я храню информацию, полученную мной из API и загруженную в базу данных SQLite. Я инициализировал переменную db для нового настраиваемого класса, который содержит базу данных, но когда я пытаюсь получить к нему доступ из другого действия, мне дается «нестатическая c переменная, на которую нельзя ссылаться из контекста stati c» сообщение об ошибке.
Где я инициализирую поле:
public class MainActivity extends AppCompatActivity {
public NewsReaderDb db;
private RecyclerView headlinesRecyclerView;
private RecyclerView.Adapter headlinesAdapter;
private LinearLayoutManager headlinesManager;
List<String> headlinesList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Setting up connection to SQLite database
db = new NewsReaderDb(this);
Где я пытаюсь его использовать:
public class ArticleActivity extends AppCompatActivity {
WebView webView;
Intent data;
NewsReaderDb database;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_article);
// Setting up webview
webView = findViewById(R.id.webview);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.setWebViewClient(new HelloWebViewClient());
data = getIntent();
// OFFENDING LINE:
database = MainActivity.db;
Класс NewsReaderDb:
public class NewsReaderDb {
private NewsReaderDbHelper dbHelper;
private SQLiteDatabase db;
public NewsReaderDb(Context context) {
// Accessing database in writable format
dbHelper = new NewsReaderDbHelper(context);
db = dbHelper.getWritableDatabase();
}
Для меня не имеет смысла, что метод onCreate будет stati c, но по своей сути это действия stati c?