ログインと登録があるデータベースとしてsqliteを使用したアプリケーションがあります。また、ユーザーはすべてのアカウントを表示できます。私のビュークラスでは、私は、フラグメントを使用するが、私は、「エラー:(58、55)エラー:互換性のない型を:_6_ViewAllは、コンテキストに変換することはできません」というエラーを受け取り、この行では、Android:フラグメントをコンテキストに変換できません
databaseHelper = new DatabaseHelper(_6_ViewAll.this);
どのようにすることができます私はこれを解決する?ここで
私のソースコードです:
_6_ViewAll.java
public class _6_ViewAll extends Fragment {
private AppCompatTextView textViewName;
private RecyclerView recyclerViewUsers;
private List<UserInfo> listUsers;
private UsersRecyclerAdapter usersRecyclerAdapter;
private DatabaseHelper databaseHelper;
View myView;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
myView = inflater.inflate(R.layout.activity__6__view_all, container, false);
textViewName = (AppCompatTextView) getView().findViewById(R.id.textViewName);
recyclerViewUsers = (RecyclerView) getView().findViewById(R.id.recycleViewUsers);
initObjects();
return myView;
}
private void initObjects() {
listUsers = new ArrayList<>();
usersRecyclerAdapter = new UsersRecyclerAdapter(listUsers);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getActivity().getApplicationContext());
recyclerViewUsers.setLayoutManager(mLayoutManager);
recyclerViewUsers.setItemAnimator(new DefaultItemAnimator());
recyclerViewUsers.setHasFixedSize(true);
recyclerViewUsers.setAdapter(usersRecyclerAdapter);
databaseHelper = new DatabaseHelper(_6_ViewAll.this);
String emailFromIntent = getActivity().getIntent().getStringExtra("EMAIL");
textViewName.setText(emailFromIntent);
getDataFromSQLite();
}
private void getDataFromSQLite() {
// AsyncTask is used that SQLite operation not blocks the UI Thread.
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
listUsers.clear();
listUsers.addAll(databaseHelper.getAllUser());
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
usersRecyclerAdapter.notifyDataSetChanged();
}
}.execute();
}
}
ありがとうございました!
databaseHelper = new DatabaseHelper(getContext());うまくいくはずです。 –
'Fragment'クラスは' Context'を拡張しないので、変換できないのですが 'Activity'は' getActivity() 'メソッドを使ってContextを取得します。 –
@VasylGlodanが述べたように、FragmentはContextクラスを拡張しませんが、FragmentはContextオブジェクトを拡張または実装するクラスによって(直接的または間接的に)表示され、getContext()メソッドを使用するか、 GetActivity()メソッドを使用してFragmentオブジェクトを表示し、アクティビティのすべての公開機能にアクセスするActivityオブジェクトです。 –