我不断收到NullPointerException试图缩小或使UI中的VIEwStub不可见.我只是想确保自己做对了.
我通过执行以下 *** 作来在galleryVIEw的onItemLongClick方法中扩展VIEwStub:
@OverrIDe public boolean onItemLongClick(AdapterVIEw<?> arg0, VIEw viu, int arg2, long arg3) { Toast.makeText(galleryVIEw.this, "New item added to Favorites", Toast.LENGTH_SHORT).show(); favsCount++; //checking to see if VIEwStub is already inflated or not if(!stubvis){ stub = (VIEwStub) findVIEwByID(R.ID.stub1); stub.inflate(); stubvis = true; trayUP = true; } return true; } });
然后在onPrepareOptionsMenu()中,我基于VIEwStub的可见性添加菜单项.如果膨胀并可见,我将创建一个菜单项以将其隐藏,否则,将创建一个菜单项以显示/使其可见.
@OverrIDepublic boolean onPrepareOptionsMenu(Menu menu) {menu.clear();if(trayUP) {menu.add(0, HIDETRAY, 0, "HIDe Favorites Tray");} else {menu.add(0, SHOWTRAY, 0, "Show Favorites Tray");}return super.onPrepareOptionsMenu(menu);}
接下来,在onoptionsItemSelected()中,我将基于菜单项选择来编写两种情况.情况1,当托盘不可见时,我将其设为可见.情况2可见时,因此我通过执行以下 *** 作将其隐藏:
@OverrIDepublic boolean onoptionsItemSelected(MenuItem item) { switch (item.getItemID()) { case HIDETRAY: Log.v(TAG, "HIDing Favs Tray"); findVIEwByID(R.ID.stub1).setVisibility(VIEw.GONE); trayUP = false; case SHOWTRAY: Log.v(TAG, "Showing Favs Tray"); findVIEwByID(R.ID.stub1).setVisibility(VIEw.VISIBLE); trayUP = true; } return true;
}
我知道我在某个地方犯了一个愚蠢的错误.而且我的思想太过饱和,无法立即思考.需要帮忙 :(
谢谢,
抗体
解决方法:
Abhishek,您似乎正在尝试实现某种抽屉功能.如果仅使用SlidingDrawer类,则可能能够解决所有这些设置视图可见性的问题.
总结以上是内存溢出为你收集整理的android-如何从菜单(onOptionsItemSelected)缩小/隐藏(不可见)ViewStub?全部内容,希望文章能够帮你解决android-如何从菜单(onOptionsItemSelected)缩小/隐藏(不可见)ViewStub?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)