- Forum posts: 17
Dec 4, 2014, 8:27:48 AM via Website
Dec 4, 2014 8:27:48 AM via Website
Hi friends,
i have an app with swipe menu and have set a font Roboto font for that in Mainactivity also created a folder in assets and pasted the fonts. But when i run the app it force closes. Please help me.
Mainactivity.java
import java.util.ArrayList;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.content.Intent;
import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.graphics.Typeface;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ActionBarDrawerToggle mDrawerToggle;
// nav drawer title
private CharSequence mDrawerTitle;
// used to store app title
private CharSequence mTitle;
// slide menu items
private String[] navMenuTitles;
private TypedArray navMenuIcons;
private ArrayList<NavDrawerItem> navDrawerItems;
private NavDrawerListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Typeface tf = Typeface.createFromAsset(getAssets(),
"fonts/Roboto-Regular.ttf");
TextView tv = (TextView) findViewById(R.id.title);
tv.setTypeface(tf);
mTitle = mDrawerTitle = getTitle();
// load slide menu items
navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);
// nav drawer icons from resources
navMenuIcons = getResources()
.obtainTypedArray(R.array.nav_drawer_icons);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.list_slidermenu);
navDrawerItems = new ArrayList<NavDrawerItem>();
// adding nav drawer items to array
// Home
navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
// Find People
navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
// Photos
navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
// Communities, Will add a counter here
navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1)));
// Pages
navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1)));
// What's hot, We will add a counter here
navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons.getResourceId(5, -1)));
// What's hot, We will add a counter here
navDrawerItems.add(new NavDrawerItem(navMenuTitles[6], navMenuIcons.getResourceId(6, -1)));
// Recycle the typed array
navMenuIcons.recycle();
mDrawerList.setOnItemClickListener(new SlideMenuClickListener());
// setting the nav drawer list adapter
adapter = new NavDrawerListAdapter(getApplicationContext(),
navDrawerItems);
mDrawerList.setAdapter(adapter);
// enabling action bar app icon and behaving it as toggle button
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer, //nav menu toggle icon
R.string.app_name, // nav drawer open - description for accessibility
R.string.app_name // nav drawer close - description for accessibility
) {
public void onDrawerClosed(View view) {
getActionBar().setTitle(mTitle);
// calling onPrepareOptionsMenu() to show action bar icons
invalidateOptionsMenu();
}
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(mDrawerTitle);
// calling onPrepareOptionsMenu() to hide action bar icons
invalidateOptionsMenu();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
if (savedInstanceState == null) {
// on first time display view for first nav item
displayView(0);
}
}
/**
* Slide menu item click listener
* */
private class SlideMenuClickListener implements
ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// display view for selected nav drawer item
displayView(position);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// toggle nav drawer on selecting action bar app icon/title
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
// Handle action bar actions click
switch (item.getItemId()) {
case R.id.action_settings:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
/* *
* Called when invalidateOptionsMenu() is triggered
*/
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// if nav drawer is opened, hide the action items
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
return super.onPrepareOptionsMenu(menu);
}
/**
* Diplaying fragment view for selected nav drawer list item
* */
private void displayView(int position) {
// update the main content by replacing fragments
Fragment fragment = null;
switch (position) {
case 0:
fragment = new HomeFragment();
break;
case 1:
Intent intent = new Intent(this, Projects.class);
startActivity(intent);
break;
case 2:
fragment = new Aboutus();
break;
case 3:
fragment = new Services();
break;
case 4:
fragment = new News_events();
break;
case 5:
Intent intent2 = new Intent(this, Gallery.class);
startActivity(intent2);
case 6:
fragment = new Contactus();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
}
@Override
public void setTitle(CharSequence title) {
mTitle = title;
getActionBar().setTitle(mTitle);
}
/**
* When using the ActionBarDrawerToggle, you must call it during
* onPostCreate() and onConfigurationChanged()...
*/
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle.syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Pass any configuration change to the drawer toggls
mDrawerToggle.onConfigurationChanged(newConfig);
}
}
Logcat
12-04 07:23:40.905: E/AndroidRuntime(3654): FATAL EXCEPTION: main
12-04 07:23:40.905: E/AndroidRuntime(3654): java.lang.RuntimeException: Unable to start activity ComponentInfo{info.paarva.CrescentBuilders/info.paarva.slidingmenu.MainActivity}: java.lang.NullPointerException
12-04 07:23:40.905: E/AndroidRuntime(3654): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
12-04 07:23:40.905: E/AndroidRuntime(3654): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
12-04 07:23:40.905: E/AndroidRuntime(3654): at android.app.ActivityThread.access$600(ActivityThread.java:141)
12-04 07:23:40.905: E/AndroidRuntime(3654): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
12-04 07:23:40.905: E/AndroidRuntime(3654): at android.os.Handler.dispatchMessage(Handler.java:99)
12-04 07:23:40.905: E/AndroidRuntime(3654): at android.os.Looper.loop(Looper.java:137)
12-04 07:23:40.905: E/AndroidRuntime(3654): at android.app.ActivityThread.main(ActivityThread.java:5103)
12-04 07:23:40.905: E/AndroidRuntime(3654): at java.lang.reflect.Method.invokeNative(Native Method)
12-04 07:23:40.905: E/AndroidRuntime(3654): at java.lang.reflect.Method.invoke(Method.java:525)
12-04 07:23:40.905: E/AndroidRuntime(3654): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
12-04 07:23:40.905: E/AndroidRuntime(3654): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
12-04 07:23:40.905: E/AndroidRuntime(3654): at dalvik.system.NativeStart.main(Native Method)
12-04 07:23:40.905: E/AndroidRuntime(3654): Caused by: java.lang.NullPointerException
12-04 07:23:40.905: E/AndroidRuntime(3654): at info.paarva.slidingmenu.MainActivity.onCreate(MainActivity.java:54)
12-04 07:23:40.905: E/AndroidRuntime(3654): at android.app.Activity.performCreate(Activity.java:5133)
12-04 07:23:40.905: E/AndroidRuntime(3654): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
12-04 07:23:40.905: E/AndroidRuntime(3654): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
12-04 07:23:40.905: E/AndroidRuntime(3654): ... 11 more
12-04 07:23:42.341: I/Process(3654): Sending signal. PID: 3654 SIG: 9
Recommended editorial content
With your consent, external content is loaded here.
By clicking on the button above, you agree that external content may be displayed to you. Personal data may be transmitted to third-party providers in the process. You can find more information about this in our Privacy Policy.