Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MainActivity extends AppCompatActivity implements GridViewClickListenerSetter.PermissionCheckOnClicked{
- private static final String LOG = "myLog";
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- ViewPager viewPager = findViewById(R.id.viewPager);
- MainFragmentPagerAdapter adapter = new MainFragmentPagerAdapter(this, getSupportFragmentManager());
- viewPager.setAdapter(adapter);
- TabLayout tabLayout = findViewById(R.id.tabLayout);
- tabLayout.setupWithViewPager(viewPager);
- verifyStoragePermissions();
- }
- // Storage Permissions
- private static final int REQUEST_EXTERNAL_STORAGE = 1;
- private static String[] PERMISSIONS_STORAGE = {
- Manifest.permission.READ_EXTERNAL_STORAGE,
- Manifest.permission.WRITE_EXTERNAL_STORAGE
- };
- private void verifyStoragePermissions() {
- // Check if we have write permission
- int permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
- if (permission != PackageManager.PERMISSION_GRANTED) {
- // We don't have permission so prompt the user
- ActivityCompat.requestPermissions(
- this,
- PERMISSIONS_STORAGE,
- REQUEST_EXTERNAL_STORAGE
- );
- }
- }
- @Override
- public void itemViewClicked() {
- verifyStoragePermissions();
- }
- public class FragmentBeginner extends Fragment {
- private BooksAdapter booksAdapter;
- private boolean isCISlanguage = false;
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- String lang = Locale.getDefault().getLanguage();
- if(lang.equals("ru") || lang.equals("kk") || lang.equals("kz") || lang.equals("uk")){
- booksAdapter = new BooksAdapter(getActivity(), BooksUrls.getBeginnerRu());
- isCISlanguage = true;
- }else{
- booksAdapter = new BooksAdapter(getActivity(), BooksUrls.getBeginnerEng());
- isCISlanguage = false;
- }
- }
- public FragmentBeginner() {
- }
- @Nullable
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.fragment_beginner, container, false);
- GridView gridView = view.findViewById(R.id.beginnerGridView);
- gridView.setAdapter(booksAdapter);
- gridView.setOnItemClickListener(itemClickListener);
- return view;
- }
- GridViewClickListenerSetter itemClickListener = new GridViewClickListenerSetter(getActivity(), isCISlanguage, ((MainActivity)getActivity()));
- public class GridViewClickListenerSetter implements GridView.OnItemClickListener{
- private final Context context;
- private boolean isCISlanguage = false;
- private PermissionCheckOnClicked listener;
- public GridViewClickListenerSetter(Context context, boolean isCISlanguage, PermissionCheckOnClicked listener){
- this.context = context;
- this.listener = listener;
- this.isCISlanguage = isCISlanguage;
- }
- @Override
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
- listener.itemViewClicked();
- Book book;
- if(isCISlanguage){
- book = BooksUrls.getBeginnerRu(position);
- }else{
- book = BooksUrls.getBeginnerEng(position);
- }
- context.startService(BookDownloadService.getDownloadService(
- context,
- book.getUrl(),
- Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/"));
- }
- public interface PermissionCheckOnClicked{
- void itemViewClicked();
- }
- java.lang.NullPointerException: Attempt to invoke interface method 'void com.studio.houmi.firebasesample.GridViewClickListenerSetter$PermissionCheckOnClicked.itemViewClicked()' on a null object reference
- at com.studio.houmi.firebasesample.GridViewClickListenerSetter.onItemClick(GridViewClickListenerSetter.java:27)
- at android.widget.AdapterView.performItemClick(AdapterView.java:346)
- at android.widget.AbsListView.performItemClick(AbsListView.java:1576)
- at android.widget.AbsListView$PerformClick.run(AbsListView.java:3962)
- at android.widget.AbsListView$7.run(AbsListView.java:6042)
- at android.os.Handler.handleCallback(Handler.java:739)
- at android.os.Handler.dispatchMessage(Handler.java:95)
- at android.os.Looper.loop(Looper.java:148)
- at android.app.ActivityThread.main(ActivityThread.java:7329)
- at java.lang.reflect.Method.invoke(Native Method)
- at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
- at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement