Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to add header to list view in slidingmenu?
    primarykey
    data
    text
    <p>hey guys iam new developer and want to know how to add header to my listview in sliding menu..please help me how to edit my code..here is my code</p> <p>Main activity</p> <pre><code>import java.util.ArrayList; import android.app.Activity; import android.app.Fragment; import android.app.FragmentManager; 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; import com.kmcpesh.Pharmadrugsclassification.adapter.NavDrawerListAdapter; import com.kmcpesh.Pharmadrugsclassification.model.NavDrawerItem; import com.kmcpesh.Pharmadrugsclassification.R; public class Home extends Activity { private DrawerLayout mDrawerLayout; private ListView mDrawerList; private ActionBarDrawerToggle mDrawerToggle; private CharSequence mDrawerTitle; private CharSequence mTitle; private String[] navMenuTitles; private TypedArray navMenuIcons; private ArrayList&lt;NavDrawerItem&gt; navDrawerItems; private NavDrawerListAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTitle = mDrawerTitle = getTitle(); navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items); 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&lt;NavDrawerItem&gt;(); navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1))); // Autonomic Nervous System Drugs navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1))); // Cholinomimetic Drugs 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))); navDrawerItems.add(new NavDrawerItem(navMenuTitles[6], navMenuIcons.getResourceId(6, -1))); navDrawerItems.add(new NavDrawerItem(navMenuTitles[7], navMenuIcons.getResourceId(7, -1))); navDrawerItems.add(new NavDrawerItem(navMenuTitles[8], navMenuIcons.getResourceId(8, -1))); navDrawerItems.add(new NavDrawerItem(navMenuTitles[9], navMenuIcons.getResourceId(9, -1))); navMenuIcons.recycle(); mDrawerList.setOnItemClickListener(new SlideMenuClickListener()); adapter = new NavDrawerListAdapter(getApplicationContext(), navDrawerItems); mDrawerList.setAdapter(adapter); getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setHomeButtonEnabled(true); mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.ic_drawer, R.string.app_name, R.string.app_name ) { public void onDrawerClosed(View view) { getActionBar().setTitle(mTitle); invalidateOptionsMenu(); } public void onDrawerOpened(View drawerView) { getActionBar().setTitle(mDrawerTitle); invalidateOptionsMenu(); } }; mDrawerLayout.setDrawerListener(mDrawerToggle); if (savedInstanceState == null) { displayView(0); } } /** * Slide menu item click listener * */ private class SlideMenuClickListener implements ListView.OnItemClickListener { @Override public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position, long id) { displayView(position); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { if (mDrawerToggle.onOptionsItemSelected(item)) { return true; } switch (item.getItemId()) { case R.id.action_settings: return true; default: return super.onOptionsItemSelected(item); } } @Override public boolean onPrepareOptionsMenu(Menu menu) { boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList); menu.findItem(R.id.action_settings).setVisible(!drawerOpen); return super.onPrepareOptionsMenu(menu); } private void displayView(int position) { Fragment fragment = null; switch (position) { case 0: fragment = new HomeFragment(); break; case 1: fragment = new Cholinomimetics(); break; case 2: fragment = new Anticholinergic(); break; case 3: fragment = new Sympathomimetic(); break; case 4: fragment = new Sympatholytic(); break; case 5: fragment = new Antihypertensive(); break; case 6: fragment = new Antianginal(); break; case 7: fragment = new Heartfailure(); break; case 8: fragment = new Antiarrhythmic(); break; case 9: fragment = new Diuretics(); break; default: break; } if (fragment != null) { FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.frame_container, fragment).commit(); mDrawerList.setItemChecked(position, true); mDrawerList.setSelection(position); setTitle(navMenuTitles[position]); mDrawerLayout.closeDrawer(mDrawerList); } else { 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); mDrawerToggle.syncState(); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); mDrawerToggle.onConfigurationChanged(newConfig); } } </code></pre> <p>My NavDrawerListAdapter</p> <pre><code> import java.util.ArrayList; import android.app.Activity; import android.content.Context; import android.graphics.Typeface; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.kmcpesh.Pharmadrugsclassification.model.NavDrawerItem; import com.kmcpesh.Pharmadrugsclassification.R; public class NavDrawerListAdapter extends BaseAdapter { private Context context; private ArrayList&lt;NavDrawerItem&gt; navDrawerItems; public NavDrawerListAdapter(Context context, ArrayList&lt;NavDrawerItem&gt; navDrawerItems){ this.context = context; this.navDrawerItems = navDrawerItems; } @Override public int getCount() { return navDrawerItems.size(); } @Override public Object getItem(int position) { return navDrawerItems.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); convertView = mInflater.inflate(R.layout.drawer_list_item, null); } ImageView imgIcon = (ImageView) convertView.findViewById(R.id.icon); TextView txtTitle = (TextView) convertView.findViewById(R.id.title); String font="fonts/walt.tff"; Typeface text=Typeface.createFromAsset(txtTitle.getContext().getAssets(), "fonts/walt.ttf"); txtTitle.setTypeface(text); TextView txtCount = (TextView) convertView.findViewById(R.id.counter); imgIcon.setImageResource(navDrawerItems.get(position).getIcon()); txtTitle.setText(navDrawerItems.get(position).getTitle()); // displaying count // check whether it set visible or not if(navDrawerItems.get(position).getCounterVisibility()){ txtCount.setText(navDrawerItems.get(position).getCount()); }else{ // hide the counter view txtCount.setVisibility(View.GONE); } return convertView; } } </code></pre> <p>My NavDraweritem.java</p> <pre><code> public class NavDrawerItem { private String title; private int icon; private String count = "0"; // boolean to set visiblity of the counter private boolean isCounterVisible = false; public NavDrawerItem(){} public NavDrawerItem(String title, int icon){ this.title = title; this.icon = icon; } public NavDrawerItem(String title, int icon, boolean isCounterVisible, String count){ this.title = title; this.icon = icon; this.isCounterVisible = isCounterVisible; this.count = count; } public String getTitle(){ return this.title; } public int getIcon(){ return this.icon; } public String getCount(){ return this.count; } public boolean getCounterVisibility(){ return this.isCounterVisible; } public void setTitle(String title){ this.title = title; } public void setIcon(int icon){ this.icon = icon; } public void setCount(String count){ this.count = count; } public void setCounterVisibility(boolean isCounterVisible){ this.isCounterVisible = isCounterVisible; } } </code></pre> <p>here is my activity_main.xml</p> <pre><code> &lt;android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"&gt; &lt;include layout="@layout/header" /&gt; &lt;TextView android:id="@+id/label" style="@android:style/TextAppearance.Large" android:layout_width="fill_parent" android:layout_height="wrap_content" /&gt; &lt;!-- Framelayout to display Fragments --&gt; &lt;FrameLayout android:id="@+id/frame_container" android:layout_width="match_parent" android:layout_height="match_parent" /&gt; &lt;!-- Listview to display slider menu --&gt; &lt;ListView android:id="@+id/list_slidermenu" android:layout_width="250dp" android:layout_height="match_parent" android:layout_gravity="start" android:choiceMode="singleChoice" android:divider="@color/list_divider" android:dividerHeight="0.2dp" android:listSelector="@drawable/list_selector" android:background="@color/list_background"/&gt; &lt;/android.support.v4.widget.DrawerLayout&gt; </code></pre> <p>here is my list_item.xml</p> <pre><code> &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="48dp" android:background="@drawable/list_selector"&gt; &lt;ImageView android:id="@+id/icon" android:layout_width="25dp" android:layout_height="50dp" android:layout_alignParentLeft="true" android:layout_marginLeft="12dp" android:layout_marginRight="12dp" android:contentDescription="@string/desc_list_item_icon" android:src="@drawable/ic_home" android:layout_centerVertical="true" /&gt; &lt;TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="40dp" android:layout_toRightOf="@id/icon" android:textColor="@color/list_item_title" android:gravity="center_vertical" android:paddingRight="40dp"/&gt; &lt;TextView android:id="@+id/counter" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/counter_bg" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="8dp" android:textColor="@color/counter_text_color"/&gt; &lt;/RelativeLayout&gt; </code></pre> <p>and finally my header.xml</p> <pre><code> &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" &gt; &lt;TextView android:id="@+id/header" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/list_divider" /&gt; &lt;/LinearLayout&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload