Getting list using custom lists instead of array adapters

Tutorials with advanced 'difficulty' and more Lines of Code.

Getting list using custom lists instead of array adapters

Postby rahul_kalidindi » Mon Apr 19, 2010 6:28 am

Hi,

I have displayed the music list in a list view. The list is obtained from a website. I have done this using Arraylist. Now, i want to iterate the same program using custom lists and custom adapters instead of array list. The code i have written using array lists is...

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1.  
  2.  
  3.  
  4.  
  5.  
  6. public class MusicListActivity extends Activity {
  7.  
  8.         MediaPlayer mp;
  9.  
  10.         File  mediaFile;
  11.  
  12.         TextView tv;
  13.  
  14.         TextView albumtext;
  15.  
  16.         TextView artisttext;
  17.  
  18.         ArrayList<String> al=new ArrayList<String>();
  19.  
  20.         //ArrayList<String> al=new ArrayList<String>();
  21.  
  22.         ArrayList<String> node=new ArrayList<String>();
  23.  
  24.         ArrayList<String> filepath=new ArrayList<String>();
  25.  
  26.         ArrayList<String> imgal=new ArrayList<String>();
  27.  
  28.         ArrayList<String> album=new ArrayList<String>();
  29.  
  30.         ArrayList<String> artist=new ArrayList<String>();
  31.  
  32.         ListView lv;
  33.  
  34.          Object[] webImgListObject;
  35.  
  36.          String[] stringArray;
  37.  
  38.          XMLRPCClient client;
  39.  
  40.          String loginsess;
  41.  
  42.          HashMap<?, ?> siteConn = null;
  43.  
  44.          //ImageView im;
  45.  
  46.          Bitmap img;
  47.  
  48.          String s;
  49.  
  50.          int d;
  51.  
  52.          int j;
  53.  
  54.          StreamingMediaPlayer sm;
  55.  
  56.          int start=0;
  57.  
  58.          Intent i;
  59.  
  60.         @Override
  61.  
  62.         protected void onCreate(Bundle savedInstanceState) {
  63.  
  64.                 // TODO Auto-generated method stub
  65.  
  66.                 super.onCreate(savedInstanceState);        
  67.  
  68.                 setContentView(R.layout.openadiuofile);
  69.  
  70.                 lv=(ListView)findViewById(R.id.list1);
  71.  
  72.                 al=getIntent().getStringArrayListExtra("titles");
  73.  
  74.                 //node=getIntent().getStringArrayListExtra("nodeid");
  75.  
  76.                 filepath=getIntent().getStringArrayListExtra("apath");
  77.  
  78.                 imgal=getIntent().getStringArrayListExtra("imgpath");
  79.  
  80.                 album=getIntent().getStringArrayListExtra("album");
  81.  
  82.                 artist=getIntent().getStringArrayListExtra("artist");
  83.  
  84.                 // ArrayAdapter<String> aa=new ArrayAdapter<String>(this,R.layout.row,R.id.text2,al);
  85.  
  86.              //lv.setAdapter(aa);
  87.  
  88.                 try{
  89.  
  90.                        
  91.  
  92.                lv.setAdapter( new styleadapter(this,R.layout.row, R.id.text2,al));
  93.  
  94.                        
  95.  
  96.                 }catch(Throwable e)
  97.  
  98.                 {
  99.  
  100.                         Log.e("openaudio error",""+e.toString());
  101.  
  102.                         goBlooey(e);
  103.  
  104.                 }
  105.  
  106.                lv.setOnItemClickListener(new OnItemClickListener(){      
  107.  
  108.                         @Override
  109.  
  110.                         public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
  111.  
  112.                                         long arg3){ j=1;
  113.  
  114.                                  try{  d=arg2;
  115.  
  116.                                    String filep=filepath.get(d);
  117.  
  118.                                    String tit=al.get(d);
  119.  
  120.                                    String image=imgal.get(d);  
  121.  
  122.                                    String singer=artist.get(d);
  123.  
  124.                                    String movie=album.get(d);
  125.  
  126.                                  
  127.  
  128.                                   sendpath(filep,tit,image,singer,movie);
  129.  
  130.                                  // getpath(n);                        
  131.  
  132.                         }catch(Throwable t)
  133.  
  134.                         {
  135.  
  136.                                 goBlooey(t);
  137.  
  138.                         }
  139.  
  140.                         }
  141.  
  142.                    
  143.  
  144.                });
  145.  
  146.                
  147.  
  148.            }
  149.  
  150.         @Override
  151.  
  152.         protected void onPause() {
  153.  
  154.                 // TODO Auto-generated method stub
  155.  
  156.                 super.onPause();
  157.  
  158.                 if(j==0)                 
  159.  
  160.                 {i=new Intent(this,gorinkadashboard.class);
  161.  
  162.                 startActivity(i);}
  163.  
  164.         }
  165.  
  166.         @Override
  167.  
  168.         protected void onResume() {
  169.  
  170.                 // TODO Auto-generated method stub
  171.  
  172.                 super.onResume();
  173.  
  174.                 j=0;
  175.  
  176.         }
  177.  
  178.          @Override
  179.  
  180.                 public boolean onKeyDown(int keyCode, KeyEvent event) {
  181.  
  182.                         if (keyCode==KeyEvent.KEYCODE_SEARCH)
  183.  
  184.                                 {
  185.  
  186.                                 Log.i("go","go");
  187.  
  188.                                
  189.  
  190.                                 return true;           
  191.  
  192.                         }
  193.  
  194.                        
  195.  
  196.                         return(super.onKeyDown(keyCode, event));
  197.  
  198.                 }
  199.  
  200.  
  201.  
  202.          public void sendpath(String n,String nn,String image,String singer,String movie)
  203.  
  204.          {    
  205.  
  206.                  
  207.  
  208.                     Intent ii=new Intent(this,MusicPlayerActivity.class);
  209.  
  210.                         ii.putExtra("path",n);
  211.  
  212.                         ii.putExtra("titletxt",nn);
  213.  
  214.                         //ii.putStringArrayListExtra("playpath",filepath);
  215.  
  216.                         ii.putExtra("pos",d);
  217.  
  218.                         ii.putExtra("image",image);
  219.  
  220.                         ii.putStringArrayListExtra("imagepath",imgal);
  221.  
  222.                         ii.putStringArrayListExtra("filepath", filepath);
  223.  
  224.                         ii.putStringArrayListExtra("imgal", imgal);
  225.  
  226.                         ii.putExtra("movie" ,movie );
  227.  
  228.                         ii.putExtra("singer",singer);
  229.  
  230.                         ii.putStringArrayListExtra("album", album);
  231.  
  232.                         ii.putStringArrayListExtra("artist",artist);
  233.  
  234.                         ii.putStringArrayListExtra("tittlearray",al);
  235.  
  236.                         startActivity(ii);
  237.  
  238.          }
  239.  
  240.        
  241.  
  242.             class styleadapter extends ArrayAdapter<String>
  243.  
  244.                 {
  245.  
  246.                Context context=null;
  247.  
  248.                         public styleadapter(Context context, int resource,
  249.  
  250.                                         int textViewResourceId, List<String> objects) {
  251.  
  252.                                 super(context, resource, textViewResourceId, objects);
  253.  
  254.                                
  255.  
  256.                                 this.context=context;
  257.  
  258.                         }
  259.  
  260.                  
  261.  
  262.                        
  263.  
  264.  
  265.  
  266.                         @Override
  267.  
  268.                         public View getView(int position, View convertView, ViewGroup parent) {
  269.  
  270.                                 final int i=position;                  
  271.  
  272.                                 LayoutInflater inflater = ((Activity) context).getLayoutInflater();                    
  273.  
  274.                     View v = inflater.inflate(R.layout.row, null);
  275.  
  276.                     tv=(TextView)v.findViewById(R.id.text2);
  277.  
  278.                     albumtext=(TextView)v.findViewById(R.id.text3);
  279.  
  280.                     artisttext=(TextView)v.findViewById(R.id.text1);
  281.  
  282.                     tv.setText(al.get(i));
  283.  
  284.                    albumtext.setText(album.get(i));
  285.  
  286.                     artisttext.setText(artist.get(i));
  287.  
  288.                     final ImageView im=(ImageView)v.findViewById(R.id.image);
  289.  
  290.                         s="http://www.gorinka.com/"+imgal.get(i);
  291.  
  292.                    //   displyimg(s,v);    
  293.  
  294.                        // new imageloader(s,im);
  295.  
  296.                       String imgPath=s;
  297.  
  298.                      AsyncImageLoaderv asyncImageLoaderv=new AsyncImageLoaderv();
  299.  
  300.                         Bitmap cachedImage = asyncImageLoaderv.loadDrawable(imgPath, new AsyncImageLoaderv.ImageCallback() {
  301.  
  302.                             public void imageLoaded(Bitmap imageDrawable, String imageUrl) {
  303.  
  304.  
  305.  
  306.                                 im.setImageBitmap(imageDrawable);
  307.  
  308.                            }
  309.  
  310.                               });
  311.  
  312.                      im.setImageBitmap(cachedImage);
  313.  
  314.                        
  315.  
  316.                        return v;
  317.  
  318.                                                                
  319.  
  320.                         }    
  321.  
  322.                
  323.  
  324.                         }
  325.  
  326.            
  327.  
  328.            
  329.  
  330.             public class imageloader implements Runnable{
  331.  
  332.                  
  333.  
  334.                 private String ss;
  335.  
  336.                         //private View v;
  337.  
  338.                         //private View v2;
  339.  
  340.                         private ImageView im;
  341.  
  342.                        
  343.  
  344.                  public imageloader(String s,  ImageView im) {
  345.  
  346.                          this.ss=s;
  347.  
  348.                         //this.v2=v2;
  349.  
  350.                          this.im=im;
  351.  
  352.                          Thread thread = new Thread(this);
  353.  
  354.                      thread.start();
  355.  
  356.                             }
  357.  
  358.                         public void run(){
  359.  
  360.                      try {
  361.  
  362.                             // URL url = new URL(ss);
  363.  
  364.                             // URLConnection conn = url.openConnection();
  365.  
  366.                             // conn.connect();
  367.  
  368.                          HttpGet httpRequest = null;           
  369.  
  370.                                       httpRequest = new HttpGet(ss);
  371.  
  372.                                       HttpClient httpclient = new DefaultHttpClient();
  373.  
  374.                                         HttpResponse response = (HttpResponse) httpclient.execute(httpRequest);
  375.  
  376.                                         HttpEntity entity = response.getEntity();
  377.  
  378.                                         BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity);
  379.  
  380.                              InputStream is = bufHttpEntity.getContent();
  381.  
  382.                            //  BufferedInputStream bis = new BufferedInputStream(is);
  383.  
  384.                              Bitmap bm = BitmapFactory.decodeStream(is);
  385.  
  386.                              Log.d("img","img");
  387.  
  388.                             // bis.close();
  389.  
  390.                              is.close();
  391.  
  392.                              im.setImageBitmap(bm);
  393.  
  394.                             // im.forceLayout();
  395.  
  396.                             // v2.postInvalidate();
  397.  
  398.                            //  v2.requestLayout();
  399.  
  400.                      } catch (Exception t) {
  401.  
  402.                                 Log.e("bitmap url", "Exception in updateStatus()", t);
  403.  
  404.                                 //goBlooey(t);
  405.  
  406.                                 // throw new RuntimeException(t);
  407.  
  408.                         }
  409.  
  410.  
  411.  
  412.              }
  413.  
  414.                
  415.  
  416.                
  417.  
  418.             }
  419.  
  420.  
  421.  
  422.             private void goBlooey(Throwable t) {
  423.  
  424.                         AlertDialog.Builder builder=new AlertDialog.Builder(this);
  425.  
  426.                        
  427.  
  428.                         builder
  429.  
  430.                                 .setTitle("Exception!")
  431.  
  432.                                 .setMessage(t.toString())
  433.  
  434.                                 .setPositiveButton("OK", null)
  435.  
  436.                                 .show();
  437.  
  438.                 }
  439.  
  440.            
  441.  
  442.           }
  443.  
  444.  
Parsed in 0.060 seconds, using GeSHi 1.0.8.4


I have created the SongList.java, SongsAdapter.java and also SongsAdapterView.java. Their code is...

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1.  
  2.  
  3.  
  4. public class SongsList {
  5.  
  6.        
  7.  
  8.         private String titleName;
  9.  
  10.     private String movieName;
  11.  
  12.     private String singerName;
  13.  
  14.     private String imagePath;
  15.  
  16.     private String mediaPath;
  17.  
  18.  // Constructor for the SongsList class
  19.  
  20.         public SongsList(String titleName, String movieName, String singerName,String imagePath,String mediaPath ) {
  21.  
  22.                 super();
  23.  
  24.                 this.titleName = titleName;
  25.  
  26.                 this.movieName = movieName;
  27.  
  28.                 this.singerName = singerName;
  29.  
  30.                 this.imagePath = imagePath;
  31.  
  32.                 this.mediaPath = mediaPath;
  33.  
  34.         }
  35.  
  36.  
  37.  
  38.    
  39.  
  40.     public String gettitleName()
  41.  
  42.     {
  43.  
  44.         return titleName;
  45.  
  46.     }
  47.  
  48.     public void settitleName(String titleName) {
  49.  
  50.         this.titleName = titleName;
  51.  
  52.     }
  53.  
  54.     public String getmovieName()
  55.  
  56.     {
  57.  
  58.         return movieName;
  59.  
  60.     }
  61.  
  62.     public void setmovieName(String movieName) {
  63.  
  64.         this.movieName = movieName;
  65.  
  66.     }
  67.  
  68.     public String getsingerName()
  69.  
  70.     {
  71.  
  72.         return singerName;
  73.  
  74.     }
  75.  
  76.     public void setsingerName(String singerName) {
  77.  
  78.         this.singerName = singerName;
  79.  
  80.     }
  81.  
  82.     public String getimagePath()
  83.  
  84.     {
  85.  
  86.         return imagePath;
  87.  
  88.     }
  89.  
  90.     public void setimagePath(String imagePath) {
  91.  
  92.         this.imagePath = imagePath;
  93.  
  94.     }
  95.  
  96.     public String getmediaPath()
  97.  
  98.     {
  99.  
  100.         return mediaPath;
  101.  
  102.     }
  103.  
  104.     public void setmediaPath(String mediaPath) {
  105.  
  106.         this.mediaPath = mediaPath;
  107.  
  108.     }
  109.  
  110.    
  111.  
  112.  
  113.  
  114. }
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124. public class SongsAdapter extends BaseAdapter{
  125.  
  126.         private Context context;
  127.  
  128.         private List<SongsList> listSongs;
  129.  
  130.        
  131.  
  132.         public SongsAdapter(Context context, List<SongsList> listPhonebook){
  133.  
  134.                 this.context = context;
  135.  
  136.                 this.listSongs = listSongs;
  137.  
  138.                 }
  139.  
  140.         public int getCount() {
  141.  
  142.                 return listSongs.size();
  143.  
  144.         }
  145.  
  146.  
  147.  
  148.         public Object getItem(int position) {
  149.  
  150.                 return listSongs.get(position);
  151.  
  152.         }
  153.  
  154.  
  155.  
  156.         public long getItemId(int position) {
  157.  
  158.                 return position;
  159.  
  160.         }
  161.  
  162.         public View getView(int position, View view, ViewGroup viewGroup) {
  163.  
  164.                 SongsList entry = listSongs.get(position);
  165.  
  166.                 return new SongsAdapterView(context,entry);
  167.  
  168.         }
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176. }
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186. public class SongsAdapterView extends LinearLayout {
  187.  
  188.  
  189.  
  190.         public SongsAdapterView(Context context, SongsList entry) {
  191.  
  192.                 super(context);
  193.  
  194.                 this.setOrientation(VERTICAL);
  195.  
  196.                 this.setTag(entry);
  197.  
  198.                 // TODO Auto-generated constructor stub
  199.  
  200.                
  201.  
  202.                 View v = inflate(context, R.layout.row, null);
  203.  
  204.                
  205.  
  206.                 TextView tvTitle = (TextView)v.findViewById(R.id.text2);
  207.  
  208.                 tvTitle.setText(entry.gettitleName());
  209.  
  210.                
  211.  
  212.                 TextView tvMovie = (TextView)v.findViewById(R.id.text3);
  213.  
  214.                 tvTitle.setText(entry.getmovieName());
  215.  
  216.                
  217.  
  218.                 TextView tvSinger = (TextView)v.findViewById(R.id.text1);
  219.  
  220.                 tvTitle.setText(entry.getsingerName());
  221.  
  222.                
  223.  
  224.                 addView(v);
  225.  
  226.  
  227.  
  228.  
  229.  
  230.         }
  231.  
  232.  
  233.  
  234. }
  235.  
  236.  
Parsed in 0.042 seconds, using GeSHi 1.0.8.4



Can anyone please tell me how to display the list using custom lists and custom adapters using the code above???
Regards,
Rahul
rahul_kalidindi
Freshman
Freshman
 
Posts: 8
Joined: Tue Apr 06, 2010 8:41 am
Location: Visakhapatnam

Top

Postby rahul_kalidindi » Mon Apr 19, 2010 9:24 am

I have changed my code for MusicListActivity to the following....

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1.  
  2. public class MusicListActivity extends Activity {
  3.  
  4.         MediaPlayer mp;
  5.  
  6.         File  mediaFile;
  7.  
  8.         TextView tvTitle;
  9.  
  10.         TextView tvMovie;
  11.  
  12.         TextView tvSinger;
  13.  
  14.         String s;
  15.  
  16.         Context context=null;
  17.  
  18.        
  19.  
  20.         @Override
  21.  
  22.     public void onCreate(Bundle savedInstanceState) {
  23.  
  24.         super.onCreate(savedInstanceState);
  25.  
  26.         setContentView(R.layout.openadiuofile);
  27.  
  28.        
  29.  
  30.        
  31.  
  32.        // List<SongsList> listOfSongs = new ArrayList<SongsList>();
  33.  
  34.        
  35.  
  36.  
  37.  
  38.        
  39.  
  40.         }
  41.  
  42.         public View getView(int position, View convertView, ViewGroup parent) {
  43.  
  44.                 final int i=position;  
  45.  
  46.                 ListView list = (ListView)findViewById(R.id.list1);
  47.  
  48.                 List<SongsList> listOfSongs = new ArrayList<SongsList>();
  49.  
  50.                 String al = listOfSongs.get(0).gettitleName().toString();
  51.  
  52.                 String album = listOfSongs.get(1).getmovieName().toString();
  53.  
  54.                 String artist = listOfSongs.get(2).getsingerName().toString();
  55.  
  56.                 String imgal = listOfSongs.get(3).gettitleName().toString();
  57.  
  58.                
  59.  
  60.                
  61.  
  62.                
  63.  
  64.                 LayoutInflater inflater = ((Activity) context).getLayoutInflater();
  65.  
  66.                
  67.  
  68.                 View v = inflater.inflate(R.layout.row, null);
  69.  
  70.         tvTitle=(TextView)v.findViewById(R.id.text2);
  71.  
  72.         tvMovie=(TextView)v.findViewById(R.id.text3);
  73.  
  74.         tvSinger=(TextView)v.findViewById(R.id.text1);
  75.  
  76.        
  77.  
  78.                 tvTitle.setText(al);
  79.  
  80.         tvMovie.setText(album);
  81.  
  82.         tvSinger.setText(artist);
  83.  
  84.         final ImageView im=(ImageView)v.findViewById(R.id.image);
  85.  
  86.             s="http://www.gorinka.com/"+imgal;
  87.  
  88.        
  89.  
  90.             SongsAdapter adapter = new SongsAdapter(this, listOfSongs);
  91.  
  92.             list.setAdapter(adapter);
  93.  
  94.            
  95.  
  96.            
  97.  
  98.             String imgPath=s;
  99.  
  100.             AsyncImageLoaderv asyncImageLoaderv=new AsyncImageLoaderv();
  101.  
  102.             Bitmap cachedImage = asyncImageLoaderv.loadDrawable(imgPath, new AsyncImageLoaderv.ImageCallback() {
  103.  
  104.                     public void imageLoaded(Bitmap imageDrawable, String imageUrl) {
  105.  
  106.  
  107.  
  108.                         im.setImageBitmap(imageDrawable);
  109.  
  110.                    }
  111.  
  112.               });
  113.  
  114.              im.setImageBitmap(cachedImage);
  115.  
  116.            
  117.  
  118.            return v;
  119.  
  120.                                                
  121.  
  122.         }  
  123.  
  124.         public class imageloader implements Runnable{
  125.  
  126.                  
  127.  
  128.                 private String ss;
  129.  
  130.                         private ImageView im;
  131.  
  132.                        
  133.  
  134.                  public imageloader(String s,  ImageView im) {
  135.  
  136.                          this.ss=s;
  137.  
  138.                          this.im=im;
  139.  
  140.                          Thread thread = new Thread(this);
  141.  
  142.                      thread.start();
  143.  
  144.                             }
  145.  
  146.                         public void run(){
  147.  
  148.                      try {
  149.  
  150.                             // URL url = new URL(ss);
  151.  
  152.                             // URLConnection conn = url.openConnection();
  153.  
  154.                             // conn.connect();
  155.  
  156.                          HttpGet httpRequest = null;           
  157.  
  158.                                       httpRequest = new HttpGet(ss);
  159.  
  160.                                       HttpClient httpclient = new DefaultHttpClient();
  161.  
  162.                                         HttpResponse response = (HttpResponse) httpclient.execute(httpRequest);
  163.  
  164.                                         HttpEntity entity = response.getEntity();
  165.  
  166.                                         BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity);
  167.  
  168.                              InputStream is = bufHttpEntity.getContent();
  169.  
  170.                            //  BufferedInputStream bis = new BufferedInputStream(is);
  171.  
  172.                              Bitmap bm = BitmapFactory.decodeStream(is);
  173.  
  174.                              Log.d("img","img");
  175.  
  176.                             // bis.close();
  177.  
  178.                              is.close();
  179.  
  180.                              im.setImageBitmap(bm);
  181.  
  182.                             // im.forceLayout();
  183.  
  184.                             // v2.postInvalidate();
  185.  
  186.                            //  v2.requestLayout();
  187.  
  188.                      } catch (Exception t) {
  189.  
  190.                                 Log.e("bitmap url", "Exception in updateStatus()", t);
  191.  
  192.                                 //goBlooey(t);
  193.  
  194.                                 // throw new RuntimeException(t);
  195.  
  196.                         }
  197.  
  198.  
  199.  
  200.              }
  201.  
  202.        
  203.  
  204. }
  205.  
  206. }
Parsed in 0.048 seconds, using GeSHi 1.0.8.4


But i am getting only a blank screen instead of the list... Can anyone tell me what the problem is....
Regards,
Rahul
rahul_kalidindi
Freshman
Freshman
 
Posts: 8
Joined: Tue Apr 06, 2010 8:41 am
Location: Visakhapatnam

Top

Return to Advanced Tutorials

Who is online

Users browsing this forum: No registered users and 8 guests