4

i need to create a multi level list. like this image

Multilevel list

i try this ,this and this

but not get any idea how to implement multilevel list view.

i try to create my own like this

main1.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="none"
android:background="#ffffff"
>


<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
android:id="@+id/add"
android:orientation="vertical"
/>


</ScrollView>

TreenodeDatabase.java

 package com.android.treenode;

import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteStatement;
import android.util.Log;

public class TreenodeDatabase {

private static final String DB_NAME1 = "treenode.sqlite3";
private static final int databse_version=1;
private  Context         m_contextObj       =  null ;
private  SQLiteDatabase  db   =  null ;
private SQLiteStatement insertstmt;
int totalcolms;
public TreenodeDatabase(Context ctx)
 {
         m_contextObj = ctx;
         OpenHelper  oh=new OpenHelper (m_contextObj);
         this.db=oh.getWritableDatabase();
 }


  public void CloseDB()
  {
      try
        {
            db.close();

        }
        catch(Exception ex)
        {
        }
        finally{

            db=null;
            //return nt;
        }


  } 


  public void getContinentData(){

        Cursor mCursor = null;
        String SqlQuery = null;
        int numRows;


        SqlQuery = "Select * from Continent";
        Log.d("Query ------>",SqlQuery);
        try{
            ArrayListClass.continent.clear();
        }catch (Exception e) {
            // TODO: handle exception
        }


        try
        {
            mCursor = db.rawQuery(SqlQuery, null);          
            if(mCursor != null)
            {
                numRows = mCursor.getCount();
                Log.e("1","");

                mCursor.moveToFirst();
                for (int i = 0; i < numRows; ++i) 
                {

                    ObjectClass obj = new ObjectClass();
                    obj.continent_id = mCursor.getString(0).toString().replace('$',' ').trim().toString();
                    obj.continent = mCursor.getString(1).toString().replace('$',' ').trim().toString();

                    ArrayListClass.continent.add(obj);
                    mCursor.moveToNext();

                }

            }
        } 
        catch (SQLException e) 
        {

        }
        finally{
            try{


            mCursor.close();
            mCursor=null;
            }catch (Exception e) {
                // TODO: handle exception
            }
        }

  }
  public void getCountryData(String continent_id){

        Cursor mCursor = null;
        String SqlQuery = null;
        int numRows;


        SqlQuery = "Select * from Country where Rid=" + continent_id;
        Log.d("Query ------>",SqlQuery);
        try{
            ArrayListClass.country.clear();
        }catch (Exception e) {
            // TODO: handle exception
        }


        try
        {
            mCursor = db.rawQuery(SqlQuery, null);          
            if(mCursor != null)
            {
                numRows = mCursor.getCount();
                Log.e("1","");

                mCursor.moveToFirst();
                for (int i = 0; i < numRows; ++i) 
                {

                    ObjectClass obj = new ObjectClass();
                    obj.country_id = mCursor.getString(0).toString().replace('$',' ').trim().toString();
                    obj.country = mCursor.getString(1).toString().replace('$',' ').trim().toString();
                    obj.country_ref_id =        mCursor.getString(2).toString().replace('$',' ').trim().toString();

                    ArrayListClass.country.add(obj);
                    mCursor.moveToNext();

                }

            }
        } 
        catch (SQLException e) 
        {

        }
        finally{

            try{

            }catch (Exception e) {
                // TODO: handle exception
            }

            try{


            mCursor.close();
            mCursor=null;
            }catch (Exception e) {
                // TODO: handle exception
            }
        }

  }
  public void getStateData(String country_id){

        Cursor mCursor = null;
        String SqlQuery = null;
        int numRows;


        SqlQuery = "Select * from State where Rid=" + country_id;
        Log.d("Query ------>",SqlQuery);
        try{
            ArrayListClass.state.clear();
        }catch (Exception e) {
            // TODO: handle exception
        }


        try
        {
            mCursor = db.rawQuery(SqlQuery, null);          
            if(mCursor != null)
            {
                numRows = mCursor.getCount();
                Log.e("1","");

                mCursor.moveToFirst();
                for (int i = 0; i < numRows; ++i) 
                {

                    ObjectClass obj = new ObjectClass();
                    obj.state_id = mCursor.getString(0).toString().replace('$',' ').trim().toString();
                    obj.state = mCursor.getString(1).toString().replace('$',' ').trim().toString();
                    obj.state_ref_id = mCursor.getString(2).toString().replace('$',' ').trim().toString();

                    ArrayListClass.state.add(obj);
                    mCursor.moveToNext();

                }

            }
        } 
        catch (SQLException e) 
        {

        }
        finally{
            try{


            mCursor.close();
            mCursor=null;
            }catch (Exception e) {
                // TODO: handle exception
            }
        }

  }
  public void getRegionData(String state_id){

        Cursor mCursor = null;
        String SqlQuery = null;
        int numRows;


        SqlQuery = "Select * from Region where Rid=" + state_id;
        Log.d("Query ------>",SqlQuery);
        try{
            ArrayListClass.region.clear();
        }catch (Exception e) {
            // TODO: handle exception
        }


        try
        {
            mCursor = db.rawQuery(SqlQuery, null);          
            if(mCursor != null)
            {
                numRows = mCursor.getCount();
                Log.e("1","");

                mCursor.moveToFirst();
                for (int i = 0; i < numRows; ++i) 
                {

                    ObjectClass obj = new ObjectClass();
                    obj.region_id = mCursor.getString(0).toString().replace('$',' ').trim().toString();
                    obj.region = mCursor.getString(1).toString().replace('$',' ').trim().toString();
                    obj.region_ref_id = mCursor.getString(2).toString().replace('$',' ').trim().toString();

                    ArrayListClass.region.add(obj);
                    mCursor.moveToNext();

                }

            }
        } 
        catch (SQLException e) 
        {

        }
        finally{
            try{


            mCursor.close();
            mCursor=null;
            }catch (Exception e) {
                // TODO: handle exception
            }
        }

  }
  public void getAreaData(String region_id){

        Cursor mCursor = null;
        String SqlQuery = null;
        int numRows;


        SqlQuery = "Select * from Area where Rid=" + region_id;
        Log.d("Query ------>",SqlQuery);
        try{
            ArrayListClass.area.clear();
        }catch (Exception e) {
            // TODO: handle exception
        }


        try
        {
            mCursor = db.rawQuery(SqlQuery, null);          
            if(mCursor != null)
            {
                numRows = mCursor.getCount();
                Log.e("1","");

                mCursor.moveToFirst();
                for (int i = 0; i < numRows; ++i) 
                {

                    ObjectClass obj = new ObjectClass();
                    obj.area_id = mCursor.getString(0).toString().replace('$',' ').trim().toString();
                    obj.area = mCursor.getString(1).toString().replace('$',' ').trim().toString();
                    obj.area_ref_id = mCursor.getString(2).toString().replace('$',' ').trim().toString();

                    ArrayListClass.area.add(obj);
                    mCursor.moveToNext();

                }

            }
        } 
        catch (SQLException e) 
        {

        }
        finally{
            try{


            mCursor.close();
            mCursor=null;
            }catch (Exception e) {
                // TODO: handle exception
            }
        }

  }





  public long insert(String values){
        Log.e("DbHelper : ", "Insert function called    " + values);
        this.insertstmt=this.db.compileStatement(values);
        Log.e("DbHelper :", "Executing insert query here ");
        return this.insertstmt.executeInsert();
    }



  private static class OpenHelper extends SQLiteOpenHelper {
        OpenHelper(Context context){
             super(context, DB_NAME1, null, databse_version);
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
            // TODO Auto-generated method stub

            db.execSQL("CREATE TABLE "+"Continent"+"(Id INTEGER PRIMARY KEY AUTOINCREMENT,Name TXT)");
            db.execSQL("CREATE TABLE "+"Country"+"(Id INTEGER PRIMARY KEY AUTOINCREMENT,Name TXT,Rid TXT)");
            db.execSQL("CREATE TABLE "+"State"+"(Id INTEGER PRIMARY KEY AUTOINCREMENT,Name TXT,Rid TXT)");
            db.execSQL("CREATE TABLE "+"Region"+"(Id INTEGER PRIMARY KEY AUTOINCREMENT,Name TXT,Rid TXT)");
            db.execSQL("CREATE TABLE "+"Area"+"(Id INTEGER PRIMARY KEY AUTOINCREMENT,Name TXT,Rid TXT)");

        }

        @Override
        public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
            // TODO Auto-generated method stub

        }
}


}

ObjectClass.java

package com.android.treenode;


public class ObjectClass{

String continent = "";
String country = "";
String state = "";
String region = "";
String area = "";

String continent_id = "";
String country_id = "";
String state_id = "";
String region_id = "";
String area_id = "";

String country_ref_id = "";
String state_ref_id = "";
String region_ref_id = "";
String area_ref_id = "";

public static boolean [] showcountry = null;
public static boolean [] showstate = null;
public static boolean [] showregion = null;
public static boolean [] showarea = null;

//public static Bitmap b;

}

ArrayListClass.java

package com.android.treenode;

import java.util.ArrayList;

public class ArrayListClass{

public static ArrayList<ObjectClass> continent = new ArrayList<ObjectClass>();
public static ArrayList<ObjectClass> country = new ArrayList<ObjectClass>();
public static ArrayList<ObjectClass> state = new ArrayList<ObjectClass>();
public static ArrayList<ObjectClass> region = new ArrayList<ObjectClass>();
public static ArrayList<ObjectClass> area = new ArrayList<ObjectClass>();

//public static ArrayList<ObjectClass,ArrayList<ObjectCl> area1 = new ArrayList<ObjectClass,area>();

}

TreenodeActivity.java

package com.android.treenode;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
import android.widget.Toast;

public class TreenodeActivity extends Activity {

TreenodeDatabase tnd;

LinearLayout llAdd;



int count = 0;
float size = 24f;

int items = 3;

int padding = 50;



boolean showcountry;
boolean showstate = true,showregion = true,showarea = true;

//*//** Called when the activity is first created. *//*
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main1);

    insertMethod();

    try{
        tnd = new TreenodeDatabase(this);
        tnd.getContinentData();
        tnd.CloseDB();
    }catch (Exception e) {
        // TODO: handle exception
    }



    llAdd = (LinearLayout)findViewById(R.id.add);

    //showcountry = new boolean[ArrayListClass.continent.size()];

    for(int i=0; i<ArrayListClass.continent.size(); i++){
        final int a = i;
        final LinearLayout ll = new LinearLayout(this);
        ll.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
        ll.setGravity(Gravity.LEFT|Gravity.CENTER);
        ll.setBackgroundColor(Color.WHITE);
        ll.setOrientation(LinearLayout.VERTICAL);

        final TextView tv = new TextView(this);
        tv.setText(ArrayListClass.continent.get(i).continent + "");
        tv.setTextSize(size);
        tv.setTextColor(Color.BLACK);
        tv.setGravity(Gravity.LEFT|Gravity.CENTER);
        tv.setBackgroundColor(Color.WHITE);
        tv.setOnClickListener(new OnClickListener() {               
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub


                try{
                    tnd = new TreenodeDatabase(getBaseContext());
                    tnd.getCountryData(ArrayListClass.continent.get(a).continent_id);
                    tnd.CloseDB();
                }catch (Exception e) {
                    // TODO: handle exception
                }

                if(showcountry){

                    if(ArrayListClass.country.size()>0){

                        for(int i = 0; i<ArrayListClass.country.size(); i++){
                            final int b = i;
                            final LinearLayout ll1 = new LinearLayout(getBaseContext());

                            if(i==0){
                                try{
                                    ll1.removeAllViews();
                                }catch (Exception e) {
                                    // TODO: handle exception
                                    e.printStackTrace();
                                }
                            }

                            ll1.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
                            ll1.setGravity(Gravity.LEFT|Gravity.CENTER);
                            ll1.setBackgroundColor(Color.WHITE);
                            ll1.setOrientation(LinearLayout.VERTICAL);                  
                            ll1.setPadding(50, 1, 1, 1);

                            final TextView tv1 = new TextView(getBaseContext());
                            tv1.setText(ArrayListClass.country.get(i).country + "");
                            tv1.setTextSize(size);
                            tv1.setTextColor(Color.BLACK);
                            tv1.setGravity(Gravity.LEFT|Gravity.CENTER);
                            tv1.setBackgroundColor(Color.WHITE);
                            tv1.setOnClickListener(new OnClickListener() {                              
                                @Override
                                public void onClick(View v) {
                                    // TODO Auto-generated method stub

                                    try{
                                        tnd = new TreenodeDatabase(getBaseContext());
                                        tnd.getStateData(ArrayListClass.country.get(b).country_id);
                                        tnd.CloseDB();
                                    }catch (Exception e) {
                                        // TODO: handle exception
                                    }

                                    if(showstate){

                                        if(ArrayListClass.state.size()>0){

                                            for(int i = 0; i<ArrayListClass.state.size(); i++){

                                                final LinearLayout ll2 = new LinearLayout(getBaseContext());
                                                ll2.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
                                                ll2.setGravity(Gravity.LEFT|Gravity.CENTER);
                                                ll2.setBackgroundColor(Color.WHITE);
                                                ll2.setOrientation(LinearLayout.VERTICAL);                  
                                                ll2.setPadding(50, 1, 1, 1);

                                                final TextView tv2 = new TextView(getBaseContext());
                                                tv2.setText(ArrayListClass.state.get(i).state + "");
                                                tv2.setTextSize(size);
                                                tv2.setTextColor(Color.BLACK);
                                                tv2.setGravity(Gravity.LEFT|Gravity.CENTER);
                                                tv2.setBackgroundColor(Color.WHITE);
                                                tv2.setOnClickListener(new OnClickListener() {                              
                                                    @Override
                                                    public void onClick(View v) {
                                                        // TODO Auto-generated method stub

                                                        try{
                                                            tnd = new TreenodeDatabase(getBaseContext());
                                                            tnd.getRegionData(ArrayListClass.state.get(b).state_id);
                                                            tnd.CloseDB();
                                                        }catch (Exception e) {
                                                            // TODO: handle exception
                                                        }

                                                        if(showregion){

                                                            if(ArrayListClass.region.size()>0){

                                                                for(int i = 0; i<ArrayListClass.region.size(); i++){

                                                                    final LinearLayout ll3 = new LinearLayout(getBaseContext());
                                                                    ll3.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
                                                                    ll3.setGravity(Gravity.LEFT|Gravity.CENTER);
                                                                    ll3.setBackgroundColor(Color.WHITE);
                                                                    ll3.setOrientation(LinearLayout.VERTICAL);                  
                                                                    ll3.setPadding(50, 1, 1, 1);

                                                                    final TextView tv3 = new TextView(getBaseContext());
                                                                    tv3.setText(ArrayListClass.region.get(i).region + "");
                                                                    tv3.setTextSize(size);
                                                                    tv3.setTextColor(Color.BLACK);
                                                                    tv3.setGravity(Gravity.LEFT|Gravity.CENTER);
                                                                    tv3.setBackgroundColor(Color.WHITE);
                                                                    tv3.setOnClickListener(new OnClickListener() {                              
                                                                        @Override
                                                                        public void onClick(View v) {
                                                                            // TODO Auto-generated method stub

                                                                            try{
                                                                                tnd = new TreenodeDatabase(getBaseContext());
                                                                                tnd.getAreaData(ArrayListClass.region.get(b).region_id);
                                                                                tnd.CloseDB();
                                                                            }catch (Exception e) {
                                                                                // TODO: handle exception
                                                                            }

                                                                            if(showarea){

                                                                                if(ArrayListClass.area.size()>0){

                                                                                    for(int i = 0; i<ArrayListClass.area.size(); i++){

                                                                                        LinearLayout ll4 = new LinearLayout(getBaseContext());
                                                                                        ll4.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
                                                                                        ll4.setGravity(Gravity.LEFT|Gravity.CENTER);
                                                                                        ll4.setBackgroundColor(Color.WHITE);
                                                                                        ll4.setOrientation(LinearLayout.VERTICAL);                  
                                                                                        ll4.setPadding(50, 1, 1, 1);

                                                                                        final TextView tv4 = new TextView(getBaseContext());
                                                                                        tv4.setText(ArrayListClass.area.get(i).area+ "");
                                                                                        tv4.setTextSize(size);
                                                                                        tv4.setTextColor(Color.BLACK);
                                                                                        tv4.setGravity(Gravity.LEFT|Gravity.CENTER);
                                                                                        tv4.setBackgroundColor(Color.WHITE);                                                                           
                                                                                        tv4.setOnClickListener(new OnClickListener() {                                                                              
                                                                                            @Override
                                                                                            public void onClick(View v) {
                                                                                                // TODO Auto-generated method stub  

                                                                                                Log.e("Log","clicked" + tv4.getText().toString());

                                                                                            Toast.makeText(getBaseContext(), tv4.getText().toString(), Toast.LENGTH_SHORT).show();

                                                                                            }
                                                                                        });

                                                                                        ll4.addView(tv4);
                                                                                        ll3.addView(ll4);

                                                                                    }

                                                                                }

                                                                                showarea = false;

                                                                            }else{
                                                                                ArrayListClass.area.clear();

                                                                                ll3.removeAllViews();

                                                                                ll3.addView(tv3);

                                                                                showarea = true;
                                                                            }

                                                                            //tv3.setClickable(false);
                                                                        }
                                                                    });

                                                                    ll3.addView(tv3);
                                                                    ll2.addView(ll3);
                                                                    //tv3.setClickable(false);
                                                                }

                                                            }

                                                            showregion = false;

                                                        }else{

                                                            ArrayListClass.region.clear();
                                                            ArrayListClass.area.clear();

                                                            ll2.removeAllViews();

                                                            ll2.addView(tv2);

                                                            showregion = true;
                                                        }

                                                        //tv2.setClickable(false);

                                                    }
                                                });

                                                ll2.addView(tv2);
                                                ll1.addView(ll2);
                                                //tv2.setClickable(false);
                                            }


                                        }

                                        showstate = false;

                                    }else{


                                        ArrayListClass.state.clear();
                                        ArrayListClass.region.clear();
                                        ArrayListClass.area.clear();

                                        ll1.removeAllViews();

                                        ll1.addView(tv1);

                                        showstate = true;

                                    }

                                    //tv1.setClickable(false);

                                }
                            });

                            ll1.addView(tv1);
                            ll.addView(ll1);
                            //tv1.setClickable(false);
                        }

                    }

                    showcountry = false;

                }else{

                    ArrayListClass.state.clear();
                    ArrayListClass.region.clear();
                    ArrayListClass.area.clear();
                    ArrayListClass.country.clear();


                    ll.removeAllViews();

                    ll.addView(tv);

                    showcountry = true;
                }

                //tv.setClickable(false);

            }
        });


        ll.addView(tv);



        llAdd.addView(ll);
    }


    Log.e("Log","Check");




}


public void insertMethod(){

    tnd = new TreenodeDatabase(this);

    StringBuilder st = new StringBuilder();
    st.append("insert into Continent(Name) values('" + "Continent1" + "');") ;
    tnd.insert(st.toString());

    tnd.CloseDB();
    tnd = new TreenodeDatabase(this);
    StringBuilder st1 = new StringBuilder();
    st1.append("insert into Continent(Name) values('" + "Continent2" + "');") ;
    tnd.insert(st1.toString());

    tnd.CloseDB();
    tnd = new TreenodeDatabase(this);
    StringBuilder st2 = new StringBuilder();

    st2.append("insert into Country(Name,Rid) values('" + "Country1A" + "','" + "1" + "');") ;
    tnd.insert(st2.toString());

    tnd.CloseDB();
    tnd = new TreenodeDatabase(this);
    StringBuilder st3 = new StringBuilder();

    st3.append("insert into Country(Name,Rid) values('" + "Country1B" + "','" + "1" + "');") ;
    tnd.insert(st3.toString());

    tnd.CloseDB();
    tnd = new TreenodeDatabase(this);
    StringBuilder st4 = new StringBuilder();

    st4.append("insert into Country(Name,Rid) values('" + "Country2A" + "','" + "2" + "');") ;
    tnd.insert(st4.toString());

    tnd.CloseDB();
    tnd = new TreenodeDatabase(this);
    StringBuilder st5 = new StringBuilder();

    st5.append("insert into Country(Name,Rid) values('" + "Country2B" + "','" + "2" + "');") ;
    tnd.insert(st5.toString());

    tnd.CloseDB();
    tnd = new TreenodeDatabase(this);
    StringBuilder st6 = new StringBuilder();

    st6.append("insert into State(Name,Rid) values('" + "State1" + "','" + "1" + "');") ;
    tnd.insert(st6.toString());

    tnd.CloseDB();
    tnd = new TreenodeDatabase(this);
    StringBuilder st7 = new StringBuilder();

    st7.append("insert into State(Name,Rid) values('" + "State2" + "','" + "1" + "');") ;
    tnd.insert(st7.toString());

    tnd.CloseDB();
    tnd = new TreenodeDatabase(this);
    StringBuilder st8 = new StringBuilder();

    st8.append("insert into Region(Name,Rid) values('" + "Region1" + "','" + "1" + "');") ;
    tnd.insert(st8.toString());

    tnd.CloseDB();
    tnd = new TreenodeDatabase(this);
    StringBuilder st9 = new StringBuilder();

    st9.append("insert into Area(Name,Rid) values('" + "Area1" + "','" + "1" + "');") ;
    tnd.insert(st9.toString());


    tnd.CloseDB();

   }  


}

please help me i think i am near to success.. this is not working well. what i missed in this.

EDIT

loccat output

09-20 16:27:52.254: E/Database(5598): close() was never explicitly called on database '/data/data/com.android.treenode/databases/treenode.sqlite3' 09-20 16:27:52.254: E/Database(5598): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here 09-20 16:27:52.254: E/Database(5598): at android.database.sqlite.SQLiteDatabase.(SQLiteDatabase.java:1960) 09-20 16:27:52.254: E/Database(5598): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:906) 09-20 16:27:52.254: E/Database(5598): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:940) 09-20 16:27:52.254: E/Database(5598): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:933) 09-20 16:27:52.254: E/Database(5598): at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:614) 09-20 16:27:52.254: E/Database(5598): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:118) 09-20 16:27:52.254: E/Database(5598): at com.android.treenode.TreenodeDatabase.(TreenodeDatabase.java:23) 09-20 16:27:52.254: E/Database(5598): at com.android.treenode.TreenodeActivity$1$1$1.onClick(TreenodeActivity.java:810) 09-20 16:27:52.254: E/Database(5598): at android.view.View.performClick(View.java:2533) 09-20 16:27:52.254: E/Database(5598): at android.view.View$PerformClick.run(View.java:9320) 09-20 16:27:52.254: E/Database(5598): at android.os.Handler.handleCallback(Handler.java:587) 09-20 16:27:52.254: E/Database(5598): at android.os.Handler.dispatchMessage(Handler.java:92) 09-20 16:27:52.254: E/Database(5598): at android.os.Looper.loop(Looper.java:150) 09-20 16:27:52.254: E/Database(5598): at android.app.ActivityThread.main(ActivityThread.java:4385) 09-20 16:27:52.254: E/Database(5598): at java.lang.reflect.Method.invokeNative(Native Method) 09-20 16:27:52.254: E/Database(5598): at java.lang.reflect.Method.invoke(Method.java:507) 09-20 16:27:52.254: E/Database(5598): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849) 09-20 16:27:52.254: E/Database(5598): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607) 09-20 16:27:52.254: E/Database(5598): at dalvik.system.NativeStart.main(Native Method)

i think it is due to database not closed correctly.(i handle this)

but the code is not working correctly some time it shows child levels some time its not. and some time it shows double values.

  • If you develop your application in Eclipse than it would be convenient for you to switch on line numbering in Prefernces->General->Editors->Text Editors and there check "Show line numbers" and also it will be helpful if you give us your full LogCat's output – teoREtik Sep 20 '12 at 10:49
  • some times it crashed and some time not. but this code is not working well what i missed in this. it is near to tree view like widget but also have some mistakes. how can i solve them –  Sep 20 '12 at 11:00
  • you may use Expandable listview – Ankitkumar Makwana Sep 20 '12 at 11:01
  • @ankitmakwana i try but Expandable listview gives only on child element but i need 5 level list view –  Sep 20 '12 at 11:06
  • I have two ways for Multi Level Expandable but what I made is still lacking. Maybe you can expand it, I can send file to you. – AgungCode.Com Dec 23 '21 at 06:20

0 Answers0