Featured post

c# - Usage of Server Side Controls in MVC Frame work -

i using asp.net 4.0 , mvc 2.0 web application. project requiremrnt have use server side control in application not possibl in noraml case. ideally want use adrotator control , datalist control. i saw few samples , references in codepleax mvc controllib howwver found less useful. can tell how utilize theese controls in asp.net application along mvc. note: please provide functionalities related adrotator , datalist controls not equivalent functionalities thanks in advace. mvc pages not use normal .net solution makes use of normal .net components impossible. a normal .net page use event driven solution call different methods service side mvc use actions , view completly different way handle things. also, mvc not use viewstate normal .net controlls require. found article discussing mixing of normal .net , mvc.

Android listview inside tab layout inside dialog can't get scroll bars to show up -


i have custom dialog class extends dialog. inside have tab layout 2 tabs. in each tab have list view. works can't scroll bars show up.

here xml:

<?xml version="1.0" encoding="utf-8"?>  <tabhost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tabhost01" android:layout_width="300dp" android:layout_height="300dp">      <linearlayout     android:orientation="vertical"     android:layout_width="wrap_content"     android:layout_height="wrap_content">      <tabwidget         android:id="@android:id/tabs"         android:layout_width="fill_parent"         android:layout_height="wrap_content"/>      <framelayout         android:id="@android:id/tabcontent"         android:layout_width="wrap_content"         android:layout_height="wrap_content">      <listview         android:id="@+id/listview01"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:scrollbars="vertical"         android:scrollbaralwaysdrawverticaltrack="true"/>      <listview         android:id="@+id/listview02"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:scrollbars="vertical"         android:scrollbaralwaysdrawverticaltrack="true"/>      </framelayout> </linearlayout> </tabhost> 

and here part of code sets up:

    // window's layout parameters can change position windowmanager.layoutparams params = getwindow().getattributes();       // change position. 0,0 center     params.x = 0;     params.y = 250;     this.getwindow().setattributes(params);       // no title on dialog requestwindowfeature(window.feature_no_title);  setcontentview(r.layout.mylayout);  // instantiate our list views each tab listview listview01 = (listview)findviewbyid(r.id.listview01); listview listview02 = (listview)findviewbyid(r.id.listview02);   // instantiate , set our custom list view adapters listviewadapter01 = new listviewadapter01(context); listview01.setadapter(listviewadapter01);  listviewadapter02 = new listviewadapter02(context); listview02.setadapter(listviewadapter02);  // our tabhost xml tabhost tabs = (tabhost)findviewbyid(r.id.tabhost01); tabs.setup();  // create tab 1 tabhost.tabspec tab1 = tabs.newtabspec("tab1"); tab1.setcontent(r.id.listview01); tab1.setindicator("list 1"); tabs.addtab(tab1);  // create tab 2 tabhost.tabspec tab2 = tabs.newtabspec("tab2"); tab2.setcontent(r.id.listview02); tab2.setindicator("list 01"); tabs.addtab(tab2); 

ok here complete working code custom dialog class contains tabbed layout contains listview. first tab has listview rows being textview , imageview imageview being right aligned. second tab has listview rows being single textview. scroll bars set high fade duration make them show. dialog window set static size prevent dialog resizing when switching tabs. dialog window positioned lower on screen, not in center. listviews use custom adapters , second tab's listview registered context menu.

i have renamed more generic , ont contain names of our product, may have made typos when renaming think right. tried comment code best could. hope helps people.

the customdialog's xml (custom_dialog_layout.xml):

<?xml version="1.0" encoding="utf-8"?>  <tabhost     xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/tabhost01"     android:layout_width="fill_parent"     android:layout_height="300dip">      <linearlayout         android:orientation="vertical"         android:layout_width="wrap_content"         android:layout_height="wrap_content">          <tabwidget             android:id="@android:id/tabs"             android:layout_width="fill_parent"             android:layout_height="wrap_content"/>          <framelayout             android:id="@android:id/tabcontent"             android:layout_width="wrap_content"             android:layout_height="wrap_content">          <listview             android:id="@+id/listview01"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:scrollbars="vertical"             android:scrollbarfadeduration="1000000"/>          <listview             android:id="@+id/listview02"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:scrollbars="vertical"             android:scrollbarfadeduration="1000000"/>          </framelayout>     </linearlayout> </tabhost> 

tab 1 listview row xml (list_view_01_row.xml). textview, left aligned , imageview, right aligned. textview has been set larger height in order force listview rows higher. listview has been set specific width, pushes imageview right in order right align it.

<?xml version="1.0" encoding="utf-8"?>  <linearlayout     xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:paddingbottom="5dip"     android:paddingtop="5dip"     android:paddingleft="10dip"     android:paddingright="10dip">      <tablelayout         android:id="@+id/list_view_01_row_table_layout"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:stretchcolumns="0">          <tablerow             android:id="@+id/list_view_01_row_table_row"             android:gravity="center_vertical"             android:layout_width="wrap_content"             android:layout_height="wrap_content">                  <textview                     android:id="@+id/list_view_01_row_text_view"                     android:textsize="18sp"                     android:textcolor="#ffffff"                       android:gravity="center_vertical"                     android:layout_width="200dip"                      android:layout_height="75dip" />                  <imageview                     android:id="@+id/list_view_01_row_image_view"                     android:layout_width="wrap_content"                     android:layout_height="wrap_content"/>         </tablerow>     </tablelayout> </linearlayout> 

tab 2 listview row xml (list_view_02_row.xml). same tab 1 single textview, no imageview.

<?xml version="1.0" encoding="utf-8"?>  <linearlayout     xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:paddingbottom="5dip"     android:paddingtop="5dip"     android:paddingleft="10dip"     android:paddingright="10dip">      <tablelayout         android:id="@+id/list_view_02_row_table_layout"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:stretchcolumns="0">          <tablerow             android:id="@+id/list_view_02_row_table_row"             android:gravity="center_vertical"             android:layout_width="wrap_content"             android:layout_height="wrap_content">              <textview                 android:id="@+id/list_view_02_row_text_view"                 android:textsize="18sp"                 android:textcolor="#ffffff"                   android:gravity="center_vertical"                 android:layout_width="fill_parent"                  android:layout_height="75dip" />         </tablerow>     </tablelayout> </linearlayout> 

and custom dialog class.

import android.app.dialog; import android.content.context; import android.view.contextmenu; import android.view.layoutinflater; import android.view.menuitem; import android.view.view; import android.view.viewgroup; import android.view.window; import android.view.windowmanager; import android.view.contextmenu.contextmenuinfo; import android.widget.adapterview; import android.widget.baseadapter; import android.widget.imageview; import android.widget.listview; import android.widget.tabhost; import android.widget.textview;  /**  * custom dialog class hold tab view 2 tabs.  * tab 1 list view. tab 2 list view.  *   */ public class customdialog extends dialog {     /**      * our custom list view adapter tab 1 listview (listview01).      */     listview01adapter listview01adapter = null;      /**      * our custom list view adapter tab2 listview (listview02).      */     listview02adapter listview02adapter = null;      /**      * default constructor.      *       * @param context      */     public customdialog(context context)     {         super(context);          // window's layout parameters can change position         windowmanager.layoutparams params = getwindow().getattributes();           // change position. 0,0 center         params.x = 0;         params.y = 250;         this.getwindow().setattributes(params);           // no title on dialog         requestwindowfeature(window.feature_no_title);          setcontentview(r.layout.custom_dialog_layout);          // instantiate our list views each tab         listview listview01 = (listview)findviewbyid(r.id.listview01);         listview listview02 = (listview)findviewbyid(r.id.listview02);          // register context menu our listview02 items         registerforcontextmenu(listview02);          // instantiate , set our custom list view adapters         listview01adapter = new listview01adapter(context);         listview01.setadapter(listview01adapter);          listview02adapter = new listview02adapter(context);         listview02.setadapter(listview02adapter);          // bind click listener listview01 list         listview01.setonitemclicklistener(new adapterview.onitemclicklistener()         {             public void onitemclick(adapterview<?> parentview, view childview, int position, long id)             {                                    // dismiss dialog                 dismiss();             }                    });          // bind click listener listview02 list         listview02.setonitemclicklistener(new adapterview.onitemclicklistener()         {             public void onitemclick(adapterview<?> parentview, view childview, int position, long id)             {                                    // dismiss dialog                 dismiss();                       }                    });          // our tabhost xml         tabhost tabs = (tabhost)findviewbyid(r.id.tabhost01);         tabs.setup();          // create tab 1         tabhost.tabspec tab1 = tabs.newtabspec("tab1");         tab1.setcontent(r.id.listview01);         tab1.setindicator("list 1");         tabs.addtab(tab1);          // create tab 2         tabhost.tabspec tab2 = tabs.newtabspec("tab2");         tab2.setcontent(r.id.listview02);         tab2.setindicator("list 2");         tabs.addtab(tab2);     }      /**      * custom list adapter listview01      */     private class listview01adapter extends baseadapter     {                 public listview01adapter(context context)         {          }          /**          * used return how many rows in list view          */         public int getcount()         {             // add code here determine how many results have, hard coded              return 10;         }          /**          * should return whatever object represents 1 row in          * list.          */         public object getitem(int position)         {             return position;         }          /**          * used return id of custom data object.          */         public long getitemid(int position)         {             return position;         }          /**          * used define each row in list view.          */         public view getview(int position, view convertview, viewgroup parent)         {                         view row = convertview;              // our custom holder represent view on each row. see class below.             listview01holder holder = null;              if(row == null)             {                                                                    layoutinflater inflater = getlayoutinflater();                  // inflate our row xml                 row = inflater.inflate(r.layout.list_view_01_row, parent, false);                  // instantiate our holder                 holder = new listview01holder(row);                  // set our holder row                 row.settag(holder);             }             else             {                 holder = (listview01holder)row.gettag();             }              return row;         }          // our custom holder         class listview01holder         {             // text view             private textview text = null;              // image view             private imageview image = null;              listview01holder(view row)             {                     // out text view xml                 text = (textview)row.findviewbyid(r.id.image);                  // add code here set text                 text.settext("");                  // our image view xml                 image = (imageview)row.findviewbyid(r.id.list_view_01_row_image_view);                  // add code here determine image load, hard coded                 rating.setimageresource(r.drawable.image);             }         }     }      /**      * custom list adapter listview02      */     private class listview02adapter extends baseadapter     {                 public listview02adapter(context context)         {          }          /**          * used return how many rows in list view          */         public int getcount()         {             // add code here determine how many results have, hard coded              return 5;         }          /**          * should return whatever object represents 1 row in          * list.          */         public object getitem(int position)         {             return position;         }          /**          * used return id of custom data object.          */         public long getitemid(int position)         {             return position;         }          /**          * used define each row in list view.          */         public view getview(int position, view convertview, viewgroup parent)         {                         view row = convertview;             listview02holder holder = null;              if(row == null)             {                                                                    layoutinflater inflater = getlayoutinflater();                  row=inflater.inflate(r.layout.list_view_02_row, parent, false);                 holder = new listview02holder(row);                 row.settag(holder);             }             else             {                 holder = (listview02holder)row.gettag();             }              return row;         }          class listview02holder         {             private textview text = null;              listview02holder(view row)             {                 text = (textview)row.findviewbyid(r.id.list_view_02_row_text_view);                 text.settext("");             }         }     }      /**      * called when long press occurs on our listview02 items.      */     public void oncreatecontextmenu(contextmenu menu, view v, contextmenuinfo menuinfo)     {         super.oncreatecontextmenu(menu, v, menuinfo);          menu.setheadertitle("context menu");           menu.add(0, v.getid(), 0, "delete");       }      /**      * called when item in our context menu clicked.      */     public boolean oncontextitemselected(menuitem item)     {           if(item.gettitle() == "delete")         {          }           else         {             return false;         }          return true;       }   } 

Comments

Popular posts from this blog

c# - Usage of Server Side Controls in MVC Frame work -

cocoa - Nesting arrays into NSDictionary object (Objective-C) -

ios - Very simple iPhone App crashes on UILabel settext -