gpt4 book ai didi

java - NavigationDrawer onCreate 空 Activity

转载 作者:行者123 更新时间:2023-12-01 13:48:38 25 4
gpt4 key购买 nike

我按照这个例子:http://javatechig.com/android/navigation-drawer-android-example在我的应用程序中创建抽屉导航。我可以创建它,但只有当我单击第一个菜单项时它才会显示我的 fragment 。我将直接在 onCreate 上创建我的第一个 fragment ,而不单击该项目,因为这将是另一个 fragment 。我该怎么做?这是在单击 fragment 时启动的抽屉导航 Activity :

public class MainNavDrawer extends Activity {
// Within which the entire activity is enclosed
private DrawerLayout mDrawerLayout;

// ListView represents Navigation Drawer
private ListView mDrawerList;
public TextView textview;
// ActionBarDrawerToggle indicates the presence of Navigation Drawer in the action bar
private ActionBarDrawerToggle mDrawerToggle;

// Title of the action bar
private String mTitle = "";

@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.menu_listview);

mTitle = "Androi Reboot";
getActionBar().setTitle(mTitle);

// Getting reference to the DrawerLayout
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

mDrawerList = (ListView) findViewById(R.id.drawer_list);

// Getting reference to the ActionBarDrawerToggle
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer, R.string.drawer_open,
R.string.drawer_close) {

/** Called when drawer is closed */
public void onDrawerClosed(View view) {
getActionBar().setTitle(mTitle);
invalidateOptionsMenu();

}

/** Called when a drawer is opened */
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle("Androi Reboot");
invalidateOptionsMenu();
}

};



// Setting DrawerToggle on DrawerLayout
mDrawerLayout.setDrawerListener(mDrawerToggle);

// Creating an ArrayAdapter to add items to the listview mDrawerList
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(),
R.layout.arraylist, getResources().getStringArray(R.array.menus));

// Setting the adapter on mDrawerList
mDrawerList.setAdapter(adapter);

// Enabling Home button
getActionBar().setHomeButtonEnabled(true);

// Enabling Up navigation
getActionBar().setDisplayHomeAsUpEnabled(true);

// Setting item click listener for the listview mDrawerList
mDrawerList.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {

// Getting an array of rivers
String[] menuItems = getResources().getStringArray(R.array.menus);

// Currently selected river
mTitle = menuItems[position];

// Creating a fragment object
MainActivity rFragment = new MainActivity();

// Passing selected item information to fragment
Bundle data = new Bundle();
data.putInt("position", position);
data.putString("url", getUrl(position));
rFragment.setArguments(data);


// Getting reference to the FragmentManager
FragmentManager fragmentManager = getFragmentManager();

// Creating a fragment transaction
FragmentTransaction ft = fragmentManager.beginTransaction();

// Adding a fragment to the fragment transaction
ft.replace(R.id.content_frame, rFragment);

// Committing the transaction
ft.commit();

// Closing the drawer
mDrawerLayout.closeDrawer(mDrawerList);

}
});
}

protected String getUrl(int position) {
switch (position) {
case 0:
return "http://javatechig.com";
default:
return "http://javatechig.com";
}
}

@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
mDrawerToggle.syncState();
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}

/** Called whenever we call invalidateOptionsMenu() */
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// If the drawer is open, hide action items related to the content view
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);

menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
return super.onPrepareOptionsMenu(menu);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

正如您所看到的 onClick 它打开了我的 MainActivity (它是一个 fragment )。但我想在打开应用程序时显示它,而不是在单击时显示它。谢谢

最佳答案

试试这个

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.menu_listview);

mTitle = "Androi Reboot";
getActionBar().setTitle(mTitle);

// Getting reference to the DrawerLayout
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

mDrawerList = (ListView) findViewById(R.id.drawer_list);

// Getting reference to the ActionBarDrawerToggle
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer, R.string.drawer_open,
R.string.drawer_close) {

/** Called when drawer is closed */
public void onDrawerClosed(View view) {
getActionBar().setTitle(mTitle);
invalidateOptionsMenu();

}

/** Called when a drawer is opened */
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle("Androi Reboot");
invalidateOptionsMenu();
}

};



// Setting DrawerToggle on DrawerLayout
mDrawerLayout.setDrawerListener(mDrawerToggle);

// Creating an ArrayAdapter to add items to the listview mDrawerList
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(),
R.layout.arraylist, getResources().getStringArray(R.array.menus));

// Setting the adapter on mDrawerList
mDrawerList.setAdapter(adapter);

// Enabling Home button
getActionBar().setHomeButtonEnabled(true);

// Enabling Up navigation
getActionBar().setDisplayHomeAsUpEnabled(true);

// Setting item click listener for the listview mDrawerList
mDrawerList.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {

fireFragment(position)
// Closing the drawer
mDrawerLayout.closeDrawer(mDrawerList);

}
});

fireFragment(0);
}

private void fireFragment(int position){
// Getting an array of rivers
String[] menuItems = getResources().getStringArray(R.array.menus);

// Currently selected river
mTitle = menuItems[position];

// Creating a fragment object
MainActivity rFragment = new MainActivity();

// Passing selected item information to fragment
Bundle data = new Bundle();
data.putInt("position", position);
data.putString("url", getUrl(position));
rFragment.setArguments(data);


// Getting reference to the FragmentManager
FragmentManager fragmentManager = getFragmentManager();

// Creating a fragment transaction
FragmentTransaction ft = fragmentManager.beginTransaction();

// Adding a fragment to the fragment transaction
ft.replace(R.id.content_frame, rFragment);

// Committing the transaction
ft.commit();
}

关于java - NavigationDrawer onCreate 空 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20144239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com