Skip to main content

Featured

Create a chat application using openfire server and smack library

Targeted audience for this blog are developers having knowledge of core java, android, XMPP Protocol, socket programming and FTP protocol. Following are the steps to build the chat application using openfire server and smack library : 1.) Install openfire server and configure on pc  :- You can follow :    https://docs.bmc.com/docs/itsm1805/installing-and-configuring-the-openfire-chat-server-804709699.html   to refer how to install the server on your PC.   The typical openfire server admin console looks like below :  You can download and install lots of available plugins and extend the functionality of the server.      Below is the source from where you can get the openfire plugins.       https://www.igniterealtime.org/projects/openfire/plugins.jsp 2.) Add the smack library into your android project, below are the source for integrating the latest smack library for android : https://github.com/igniterealtime/S...

Custom listview with base adapter


Step 1:- Create Main Activity, which has listview


package com.example.customlistviewstudio;

import java.util.ArrayList;
import android.support.v7.app.ActionBarActivity;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ListView;

public class MainActivity extends Activity {

 private ListView listview;
 private ArrayListmodel arraylist;
 private StudioAdapter studioAdapter;

 @Override protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  initialize();

 }

 private void initialize() {

  listview = (ListView) findViewById(R.id.listView1);
  arraylist = new ArrayListmodel();
  model objmodel;

  for (int i = 0; i<10; i++) {
   objmodel = new model();
   objmodel.setTitle("Title:" + i);
   objmodel.setLike(i);
   objmodel.setShare(i);
   objmodel.setComment(i);
   arraylist.add(objmodel);

  }

  studioAdapter = new StudioAdapter(MainActivity.this, arraylist);
  listview.setAdapter(studioAdapter);

 }
}




activity_main.xml



<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.customlistviewstudio.MainActivity">

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true">
    </ListView>

</RelativeLayout>


       
 

Step 2:- Create a model class which has getter and setter methods.


Model.java

package com.example.customlistviewstudio;
public class model {
 private String Title;
 private int like;
 private int share;
 private int comment;
 public String getTitle() {
  return Title;
 }
 public void setTitle(String title) {
  Title = title;
 }
 public int getLike() {
  return like;
 }
 public void setLike(int like) {
  this.like = like;
 }
 public int getShare() {
  return share;
 }
 public void setShare(int share) {
  this.share = share;
 }
 public int getComment() {
  return comment;
 }
 public void setComment(int comment) {
  this.comment = comment;
 }
}

       
 

step 3 :- Create custom adapter and pass arraylist into it.

StudioAdapter.java


package com.example.customlistviewstudio;

import java.util.ArrayList;

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.example.customlistviewstudio.model;
public class StudioAdapter extends BaseAdapter{

 private MainActivity mainactivity;
 private ArrayList arraylist;
 
 
 public StudioAdapter(MainActivity mainactivity,ArrayList arraylist)
 {
  this.arraylist=arraylist;
  this.mainactivity=mainactivity;
 }
 
 
 @Override
 public int getCount() {
  // TODO Auto-generated method stub
  return arraylist.size();
 }

 @Override
 public Object getItem(int position) {
  // TODO Auto-generated method stub
  return position;
 }

 @Override
 public long getItemId(int position) {
  // TODO Auto-generated method stub
  return position;
 }

 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  // TODO Auto-generated method stub
  
  ViewHolder holder=null;
  
  if(convertView==null){
   
   convertView=LayoutInflater.from(mainactivity).inflate(R.layout.row_studio, null);
   
   holder=new ViewHolder();
   holder.titel=(TextView) convertView.findViewById(R.id.Titel);
   holder.like = (TextView) convertView.findViewById(R.id.Like);
   holder.share = (TextView) convertView.findViewById(R.id.Share);
   // holder.comment =(TextView) convertView.findViewById(R.id.txt4);
   holder.img1 = (ImageView) convertView.findViewById(R.id.img1);
   
   convertView.setTag(holder);
  }
  else
  {
   holder=(ViewHolder)convertView.getTag();
  }
   // ArrayList arraylistPlaylist = null;
    //final model model = arraylistPlaylist.get(position);
    holder.titel.setText(arraylist.get(position).getTitle());
    holder.like.setText( ""+arraylist.get(position).getLike());
    holder.share.setText(""+arraylist.get(position).getShare());
    // holder.comment.setText(model.getComment());
    holder.img1.setImageResource(R.drawable.ic_launcher);
    return convertView;
 }
 class ViewHolder {
  public TextView titel;
  public TextView like;
  public TextView share;
  public ImageView img1;
 }
}
       
 


step 4 :- Below is layout which is inflated into listview row in above adapter.

row_studio.xml



 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

<ImageView
    android:id="@+id/img1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_launcher"/>

<TextView
    android:id="@+id/Titel"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:text="Titel" />

<TextView
    android:id="@+id/Like"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/img1"
    android:layout_marginLeft="20dp"
    android:layout_toRightOf="@+id/img1"
    android:text="Like" />

<TextView
    android:id="@+id/Share"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/Like"
    android:layout_alignLeft="@+id/Titel"
    android:text="Share" />

<TextView
    android:id="@+id/Comment"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/Share"
    android:layout_alignParentRight="true"
    android:layout_marginRight="22dp"
    android:text="Comment" />


</RelativeLayout>

       
 

Comments

Most viewed