有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java不可访问代码:3无法解析为类型错误&3未定义类型错误

我的主要问题是我在第80行收到一个错误声明:ImagePagerAdapter cannot be resolved to a type

第80行是ImagePagerAdapter adapter = new ImagePagerAdapter();

我还收到一条警告:The type Home.ThumbnailLoadedListener.ImagePagerAdapter is never used locally

我敢肯定,我的ImagePagerAdapter无法接触到,因为闭合括号放错了位置-我尝试调整了其中一些,但我只是在确定是哪一个导致了问题(或者可能是其他原因)时遇到了一些问题

我还收到了一些其他错误,这些错误与一大块代码(基本上是第二部分)未定义/未访问有关,但我99%确定这都与语法问题或放错括号有关

所有错误:

ImagePagerAdapter cannot be resolved to a type line 80
ImagePagerAdapter cannot be resolved to a type line 80 
ThumbnailListener cannot be resolved to a type line 225 
The method onCreateOptionsMenu(Menu) is undefined for the type Object  line 246 
The method onConfigurationChanged(Configuration) is undefined for the type Object line 238  
The method onOptionsItemSelected(MenuItem) is undefined for the type Object  line 257   

附言

我为大量的代码表示歉意——我只是不确定如果我只显示了部分代码,是否有可能解决这个问题

资料来源:

public class Home extends YouTubeBaseActivity implements
YouTubePlayer.OnInitializedListener,
YouTubeThumbnailView.OnInitializedListener {

    public static final String API_KEY = "XXXXXXXXXXXXXXXXXXXXXXXXXX";
    public static final String VIDEO_ID = "o7VVHhK9zf0";
    public static final String VIDEO1_ID = "xVHHJqntuXI";
    public static final String VIDEO2_ID = "YWteQj_q3Ro";
    public static final String VIDEO3_ID = "83ZgtqTw-mI";
    public static final String VIDEO4_ID = "n5wMza29JwI";
    private YouTubePlayer youTubePlayer;
    private YouTubePlayerView youTubePlayerView;
    private YouTubeThumbnailView youTubeThumbnailView1;
    private YouTubeThumbnailView youTubeThumbnailView2;
    private YouTubeThumbnailView youTubeThumbnailView3;
    private YouTubeThumbnailView youTubeThumbnailView4;
    private String[] drawerListViewItems;
    private DrawerLayout drawerLayout;
    private DrawerLayout mDrawerLayout;
    private ListView drawerListView;
    private ListView mDrawerList;
    private ActionBarDrawerToggle actionBarDrawerToggle;
    private ActionBarDrawerToggle mDrawerToggle;
    private YouTubeThumbnailLoader thumbnailLoader;
    private YouTubeThumbnailLoader youTubeThumbnailLoader;
    private YouTubeThumbnailLoader youTubeThumbnailLoader1;
    private YouTubeThumbnailLoader youTubeThumbnailLoader2;
    private YouTubeThumbnailLoader youTubeThumbnailLoader3;
    private boolean nextThumbnailLoaded;
    ScrollView mainScrollView;
    Button fav_up_btn1;
    Button fav_dwn_btn1;
    ArrayAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.home);

        ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
        ImagePagerAdapter adapter = new ImagePagerAdapter();
        viewPager.setAdapter(adapter);

        final ActionBar actionBar = getActionBar();
        actionBar.setCustomView(R.layout.actionbar_custom_view_home);
        actionBar.setDisplayShowTitleEnabled(false);
        actionBar.setDisplayShowCustomEnabled(true);

        // get list items from strings.xml
        drawerListViewItems = getResources().getStringArray(R.array.items);

        // get ListView defined in activity_main.xml
        drawerListView = (ListView) findViewById(R.id.left_drawer);

        // Set the adapter for the list view
        drawerListView.setAdapter(new ArrayAdapter<String>(this,
                R.layout.drawer_listview_item, drawerListViewItems));

        drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        actionBarDrawerToggle = new ActionBarDrawerToggle(this, /* host Activity */
                drawerLayout, /* DrawerLayout object */
                R.drawable.ic_drawer, /* nav drawer icon to replace 'Up' caret */
                R.string.drawer_open, /* "open drawer" description */
                R.string.drawer_close /* "close drawer" description */
                );
        drawerLayout.setDrawerListener(actionBarDrawerToggle);

        getActionBar().setDisplayHomeAsUpEnabled(true);

        drawerLayout.setDrawerShadow(R.drawable.drawer_shadow,
                GravityCompat.START);

        youTubePlayerView = (YouTubePlayerView) findViewById(R.id.youtubeplayerview);
        youTubePlayerView.initialize(API_KEY, this);

        mainScrollView = (ScrollView) findViewById(R.id.groupScrollView);

        youTubeThumbnailView1 = (YouTubeThumbnailView) findViewById(R.id.youtubethumbnailview1);
        youTubeThumbnailView1.initialize(API_KEY, this);

        fav_up_btn1 = (Button) findViewById(R.id.fav_up_btn1);

        fav_up_btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                boolean favIsUp = fav_up_btn1
                        .getBackground()
                        .getConstantState()
                        .equals(getResources().getDrawable(
                                R.drawable.fav_up_btn1).getConstantState());
                // set the background
                fav_up_btn1
                .setBackgroundResource(favIsUp ? R.drawable.fav_dwn_btn1
                        : R.drawable.fav_up_btn1);
            }
        });

        youTubeThumbnailView1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                if (youTubePlayer != null) {
                    youTubePlayer.cueVideo(VIDEO1_ID);
                    youTubePlayer.play();
                    mainScrollView.smoothScrollTo(0, 0);
                }
            }
        });

        youTubeThumbnailView2 = (YouTubeThumbnailView) findViewById(R.id.youtubethumbnailview2);
        youTubeThumbnailView2.initialize(API_KEY, this);

        youTubeThumbnailView2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg1) {
                if (youTubePlayer != null) {
                    youTubePlayer.cueVideo(VIDEO2_ID);
                    youTubePlayer.play();
                    mainScrollView.smoothScrollTo(0, 0);
                }
            }
        });

        youTubeThumbnailView3 = (YouTubeThumbnailView) findViewById(R.id.youtubethumbnailview3);
        youTubeThumbnailView3.initialize(API_KEY, this);

        youTubeThumbnailView3.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg1) {
                if (youTubePlayer != null) {
                    youTubePlayer.cueVideo(VIDEO3_ID);
                    youTubePlayer.play();
                    mainScrollView.smoothScrollTo(0, 0);
                }
            }
        });

        youTubeThumbnailView4 = (YouTubeThumbnailView) findViewById(R.id.youtubethumbnailview4);
        youTubeThumbnailView4.initialize(API_KEY, this);

        youTubeThumbnailView4.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg1) {
                if (youTubePlayer != null) {
                    youTubePlayer.cueVideo(VIDEO4_ID);
                    youTubePlayer.play();
                    mainScrollView.smoothScrollTo(0, 0);
                }
            }

        });

    }

    @Override
    public void onInitializationFailure(Provider provider,
            YouTubeInitializationResult result) {

    }

    @Override
    public void onInitializationSuccess(Provider provider,
            YouTubePlayer player, boolean wasRestored) {

        youTubePlayer = player;

        if (!wasRestored) {
            player.cueVideo(VIDEO_ID);

        }
    }

    @Override
    public void onInitializationFailure(YouTubeThumbnailView thumbnailView,
            YouTubeInitializationResult error) {

    }

    @Override
    public void onInitializationSuccess(YouTubeThumbnailView thumbnailView,
            YouTubeThumbnailLoader thumbnailLoader) {
        this.thumbnailLoader = thumbnailLoader;
        thumbnailLoader.setOnThumbnailLoadedListener(new ThumbnailListener());

    }

    private final class ThumbnailLoadedListener implements
    YouTubeThumbnailLoader.OnThumbnailLoadedListener {

        @Override
        public void onThumbnailLoaded(YouTubeThumbnailView arg0, String arg1) {
            youTubeThumbnailLoader1.setVideo(VIDEO1_ID);
        }

        public void onConfigurationChanged(Configuration newConfig) {
            super.onConfigurationChanged(newConfig);
            actionBarDrawerToggle.onConfigurationChanged(newConfig);
        }

        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu items for use in the action bar
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.main, menu);
            return super.onCreateOptionsMenu(menu);
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {

            // call ActionBarDrawerToggle.onOptionsItemSelected(), if it returns
            // true
            // then it has handled the app icon touch event
            if (actionBarDrawerToggle.onOptionsItemSelected(item)) {
                return true;
            }
            return super.onOptionsItemSelected(item);
        }

        private class ImagePagerAdapter extends PagerAdapter {
            private int[] mImages = new int[] { R.drawable.classical_up_btn,
                    R.drawable.country_up_btn, R.drawable.dance_up_btn,
                    R.drawable.hiphop_up_btn };

            public int getCount() {
                return mImages.length;
            }

            public boolean isViewFromObject(View view, Object object) {
                return view == ((ImageView) object);
            }

            public Object instantiateItem(ViewGroup container, int position) {
                Context context = Home.this;
                ImageView imageView = new ImageView(context);
                int padding = context.getResources().getDimensionPixelSize(
                        R.dimen.padding_medium);
                imageView.setPadding(padding, padding, padding, padding);
                imageView.setScaleType(ImageView.ScaleType.CENTER);
                imageView.setImageResource(mImages[position]);
                ((ViewPager) container).addView(imageView, 0);
                return imageView;
            }

            @Override
            public void destroyItem(ViewGroup container, int position,
                    Object object) {
                ((ViewPager) container).removeView((ImageView) object);
            }

            private final class ThumbnailListener implements
            YouTubeThumbnailLoader.OnThumbnailLoadedListener {

                @Override
                public void onThumbnailLoaded(YouTubeThumbnailView thumbnail,
                        String videoId) {
                    // nextThumbnailLoaded = true;
                    //
                    // if (activityResumed) {
                    // if (state.equals(State.LOADING_THUMBNAILS)) {
                    // flipNext();
                    // } else if (state.equals(State.VIDEO_FLIPPED_OUT)) {
                    // // load player with the video of the next thumbnail being
                    // flipped in
                    // state = State.VIDEO_LOADING;
                    // player.cueVideo(videoId);
                }

                @Override
                public void onThumbnailError(YouTubeThumbnailView arg0,
                        ErrorReason arg1) {
                    // TODO Auto-generated method stub

                }
            }
        }

        public void onThumbnailError(YouTubeThumbnailView thumbnail,
                YouTubeThumbnailLoader.ErrorReason reason) {
            loadNextThumbnail();
        }

        private void loadNextThumbnail() {
            nextThumbnailLoaded = false;
            if (thumbnailLoader.hasNext()) {
                thumbnailLoader.next();
            } else {
                thumbnailLoader.first();
            }
        }

    }
}

共 (1) 个答案

  1. # 1 楼答案

    您必须将onCreateOptionsMenu方法更改为:

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu items for use in the action bar
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.main, menu);
            return true;
        }