- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我已经实现了选项卡 View 以及水平滑动 View (以更改选项卡),导航模式作为应用程序的列表。我正在使用 ActionBarSherlock 和 TabPageIndicator。更改标签后,我使用 fragment 重新加载内容。
在下拉微调器中,我有 2 个项目。每当 Activity 重新加载或点击选项卡后,这些都会被选中。
但是,如果执行滑动以选择其他选项卡,则在 Gingerbread 版本中不会触发 onNavigationItemSelected(int position, long itemId) :( 我们已经在 Gingerbread 2.3.6、2.3.3 上进行了测试。
在 logcat
中,我收到了这个 warning
消息 "View:onTouchEvent:ViewFlags"is DISABLED
但是,它在 ICS、Froyo 等上运行良好。
非常感谢您的帮助。
以下是代码 fragment :
public class MainPageActivity extends SherlockFragmentActivity implements
ActionBar.OnNavigationListener {
MenuItem menuItem;
EditText searchText;
public static Context mContext;
public static DataAdapter dataAdapter;
ArrayList<String> accountList;
public static List<View> currentViewBeingChanged = new ArrayList<View>();
public static LayoutInflater layoutInflater;
public static String checktab = "running", nameComp;
int isRefresh;
public static boolean isAutoRefresh = true;
public static ArrayList<String> listItems;
public static boolean check;
public static boolean isAtleastOnce = true, listToBeRefreshed = false;
public static ActionBar actionBar;
public static int itemPosition, listPosition;
public static FragmentManager fragmentManager;
InputMethodManager imm;
@Override
protected void onCreate(Bundle savedInstanceState) {
mContext = this;
layoutInflater = getLayoutInflater();
fragmentManager = getSupportFragmentManager();
super.onCreate(savedInstanceState);
setContentView(R.layout.main_page);
actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
Context context = getSupportActionBar().getThemedContext();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context,
android.R.layout.simple_spinner_dropdown_item);
adapter.clear();
for (int i = 0; i < ManageAccountLists.accountList.size(); i++) {
adapter.add(ManageAccountLists.accountList.get(i));
}
actionBar.setListNavigationCallbacks(adapter, this);
tabPagerFunction();
}
public void tabPagerFunction() {
FragmentPagerAdapter adapter = new GoogleMusicAdapter(
getSupportFragmentManager());
adapter.notifyDataSetChanged();
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(adapter);
checktab = "running";
final TabPageIndicator indicator = (TabPageIndicator) findViewById(R.id.indicator);
indicator.setViewPager(pager);
pager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
System.out.println("Tab selected..................");
if (arg0 == 0) {
// Running tab is selected
indicator.setCurrentItem(arg0);
checktab = "running";
RunningInstancesActivity runningInstancesActivity = new RunningInstancesActivity();
runningInstancesActivity.callThread();
} else {
// Stopped tab is selected
indicator.setCurrentItem(arg0);
checktab = "stopped";
StoppedInstancesActivity stoppedInstancesActivity = new StoppedInstancesActivity();
stoppedInstancesActivity.callThread();
InstanceStatusUpdate.isOnPostExecute = false;
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
class GoogleMusicAdapter extends FragmentPagerAdapter {
private final String[] CONTENT = new String[] { "Running", "Stopped" };
public GoogleMusicAdapter(FragmentManager fm) {
super(fm);
notifyDataSetChanged();
}
@Override
public Fragment getItem(int position) {
switch (position) {
/** Running tab is selected */
case 0:
checktab = "stopped";
return RunningInstancesActivity.newInstance(0);
/** Stopped tab is selected */
case 1:
checktab = "running";
return StoppedInstancesActivity.newInstance(1);
}
return null;
}
@Override
public CharSequence getPageTitle(int position) {
return CONTENT[position % CONTENT.length].toUpperCase();
}
public CharSequence getPageTitle(int position, int number) {
return CONTENT[position % CONTENT.length].toUpperCase();
}
@Override
public int getCount() {
return CONTENT.length;
}
}
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
System.out.println("Navigation item selected");
// Performs fetching
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
System.out.println("Dispatch touvh event..");
return super.dispatchTouchEvent(ev);
}
}
最佳答案
尝试这样做
dependencies {
compile "com.android.support:appcompat-v7:18.0.+"
}
并改用支持库。
关于java - 在 Gingerbread 中水平滑动后未触发操作栏的 onNavigationItemSelected(int position, long itemId),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13600835/
当单击任何菜单项时,没有响应,他们应该导航到目标 fragment @Override public boolean onNavigationItemSelected(@NonNull
我想在有人点击导航 View 时调用 onNavigationItemSelected。代码不调用 onNavigationItemSelected 方法: public boolean onNav
我正在为 android 3+ 开发 在我的操作栏中,我有一个下拉列表(请参阅 how to hide/unhide the actionbar list on android 3? 了解我想要的下拉
我在我的应用程序中实现了一个导航 View ,它是由 AndroidStudio 自动创建的。当我创建一个新项目时,我选择了 NavigationDrawer Activity,菜单项看起来没问题,但
当我编写 mNavigationView.setNavigationItemSelectedListener(this); 时,应用程序崩溃在代码中如果未添加,则会删除导航栏中该项目的功能。我应该在后
我正在为一个包含抽屉的工程设计项目开发 Android 应用。我的一位小组成员选择使用 android.support.design.widget.NavigationView API 来执行此操作,
我正在使用 ActionBarSherlock 来显示微调器: ActionBar bar = getSupportActionBar(); bar.setNavigationMode(ActionB
所以我在 StackOverFlow 上浏览了很多答案,但无法正常工作。我想在抽屉导航项目点击时切换 fragment 。我在 Android Studio 1.5 中使用默认的抽屉导航。 我关注了t
请有人帮我处理抽屉导航中的 fragment ,出于某种原因我无法让它们工作,但所有代码看起来都正确。 Here是源代码的链接。 最佳答案 使用这段代码: navigationView = (Navi
我有一个包含 3 个菜单项的抽屉导航。在我的 MainActivity.java 中,我设置了 onNavigationItemSelected() 监听器来处理单击的导航项。单击时,将显示一个自定义
我正在使用 Google+ 登录,这会导致 Navigation.activity。我已经按照 Google 开发人员的说明进行操作,但我只采用了登录方法(成功),但现在我卡在了 navigation
我想在应用程序启动时选择抽屉导航中的特定项目。我在 visual studio 默认模板中添加了 navigationView.SetCheckedItem(Resource.Id.nav_galle
我在 Kotlin 中制作了抽屉菜单,我想使用这个菜单项。在 java 中,我调用了 onNavigationItemSelected 方法,但是当我想在 Kotlin 中使用它时,它没有出现。这是我
我有一个 BottomNavigationView在我与 onNavigationItemSelected 的 Activity 中听众。 我有两个问题: 是否 setSelectedItemId方法
我有一个 ViewPager 托管在一个 fragment 中,该 fragment 托管两个 ListFragments,这两个 ListFragments 由从 SQLite 查询返回的 Curs
我想在下面的 Activity 中的操作栏中使用微调器是 onCreateOptionsMenu:我使用 this tutorial实现这种方法。我的问题是当 Activity 是午餐时,onNavi
我将 ActionBar 与下拉菜单一起使用,onNavigationItemSelected() 在 Activity 创建后立即被调用,因此第一个项目被调用。我的下拉菜单的第一项是主页,与使用 a
我在 DrawerLayout 中使用 NavigationView,我不确定我是否忘记了什么,但只是在我单击它时隐藏了 Navigation。 这是我的代码: 主要 Activity .java:
我已经实现了选项卡 View 以及水平滑动 View (以更改选项卡),导航模式作为应用程序的列表。我正在使用 ActionBarSherlock 和 TabPageIndicator。更改标签后,我
我从 Android Studio 3.5 模板创建了一个新的抽屉导航 Activity ,但即使我正在监听 NavigationItemSelected,菜单项也无法单击。 public class
我是一名优秀的程序员,十分优秀!