【发布时间】:2014-11-30 01:31:43
【问题描述】:
我正在编写一个支票簿 Android 应用程序,该应用程序在导航抽屉内显示银行账户列表。应用程序的主屏幕显示基本帐户信息(姓名、余额等)。
我能够实现 onClick 方法,以便在选择帐户时更新主屏幕,但我希望通过在应用程序打开时选择 ListView 中的第一项的方式来实现。
换句话说,当我启动应用程序时,我应该看到检查帐户信息,但我现在看到的都是默认 0,因为在启动时没有将 Intent 传递给 Activity。我尝试以编程方式选择主要活动的 onCreate 方法中的第一项,但这不起作用。
编辑
这是我的主要活动的 onCreate 代码:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View rootView = inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
mDrawerListView = (ListView) rootView.findViewById(R.id.listview_account);
// Get the Cursor that will be used to load accounts
Cursor accounts = dataSource.getAccounts();
// Make adapter.
mAccountAdapter = new AccountAdapter(getActivity(), accounts, 0);
mDrawerListView.setAdapter(mAccountAdapter);
mDrawerListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l){
HeaderViewListAdapter headerViewAdapter = (HeaderViewListAdapter) adapterView.getAdapter();
AccountAdapter adapter = (AccountAdapter) headerViewAdapter.getWrappedAdapter();
Cursor cursor = adapter.getCursor();
if(cursor != null && cursor.moveToPosition(i)){
// Adjust main page
}
}
});
return rootView;
}
在调用setUp 方法后,我尝试以编程方式选择第一项,但这不起作用。这应该在主要活动中处理还是在片段中处理?
【问题讨论】:
-
请发布您的代码!
-
请发布您的 NavigationFragment(或类似的)代码。
-
你在 Main Activity 上实现了
onNavigationDrawerItemSelected(int position)方法吗?如果是,您能否在运行应用程序后检查它是否被调用? -
@Harry 我相信代码在那里,但我没有改变它。早上我会附上调试器,让你知道。
-
你试过在MainActivity的onCreate末尾添加setItem(0)吗?
标签: android android-intent android-activity android-listview navigation-drawer