fahmide

expandablelistview
پر کردن ExpandableListView با استفاده از دیتا بیس

4 ارسال در این موضوع قرار دارد

با سلام

من توی پروژم یک ExpandableListView دارم و یه دیتابیس توی دیتابیس با استفاده از کد والد ، والد هرکدوم از فرزندان مشخص میشه. مسله اینه که کاربر امکان اضافه کردن والد و فرزند رو توی دیتابیس داره من هرکاری میکنم درست لود نمیشه اگه ممکنه راهنمایی کنین

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

کد کلاس هاتون رو بزارید

در 12 ساعت قبل، fahmide گفته است :

با سلام

من توی پروژم یک ExpandableListView دارم و یه دیتابیس توی دیتابیس با استفاده از کد والد ، والد هرکدوم از فرزندان مشخص میشه. مسله اینه که کاربر امکان اضافه کردن والد و فرزند رو توی دیتابیس داره من هرکاری میکنم درست لود نمیشه اگه ممکنه راهنمایی کنین

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

مدل 

    public Map<String, List<String>> getmap() {

        List<String> group = new ArrayList<>();//group name
        List<String> groupid = new ArrayList<>();//group id
        group = getGruop();
        Map<String, List<String>> groupMap;
        groupMap = new HashMap<String, List<String>>();


        groupid = getGruopid();
        String gname = "", getchild = "";
        db = this.getReadableDatabase();
        for (String gid : groupid) {
            getchild = "SELECT name FROM group_tab WHERE state =1 AND child =1 AND parentID=" + gid + " ";
            Cursor groupname = this.db.rawQuery("SELECT name FROM group_tab WHERE id =" + gid + " ", null);
            while (groupname.moveToNext()) {
                gname = groupname.getString(0);
            }
			List<String> childlist = new ArrayList<>();
            Cursor x = db.rawQuery(getchild, null);
            while (x.moveToNext()) {
                childlist.add(x.getString(0));
            }

            groupMap.put(gname, childlist);// The name of the group and its child
        }
        return groupMap;
    }

و قسمت adapter

public class MyELVAdapter extends BaseExpandableListAdapter {
    Map<String, List<String>> groupMap;
    List<String> groupNameList;
    LayoutInflater li;

    public MyELVAdapter(Activity context, Map<String, List<String>> _groupMap, List<String> _groupNameList) {
        groupMap = _groupMap;
        groupNameList = _groupNameList;
        li = context.getLayoutInflater();
    }


    @Override
    public int getGroupCount() {
        return groupNameList.size();
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        String groupName = groupNameList.get(groupPosition);
        return groupMap.get(groupName).size();
    }

    @Override
    public Object getGroup(int groupPosition) {
        return groupNameList.get(groupPosition);
    }

    @Override
    public Object getChild(int groupPosition, int childPosition) {
        String groupName = groupNameList.get(groupPosition);
        return groupMap.get(groupName).get(childPosition);
    }

    @Override
    public long getGroupId(int groupPosition) {
        return groupPosition;
    }

    @Override
    public long getChildId(int groupPostition, int childPosition) {
        return childPosition;
    }

    @Override
    public boolean hasStableIds() {
        return true;
    }

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View v, ViewGroup parent) {
        if (v == null) {
            v = li.inflate(R.layout.group_list_item, parent, false);
        }
        TextView tv = (TextView) v.findViewById(R.id.grouplist);
        String groupName = (String) getGroup(groupPosition);
        tv.setText(groupName);

        return v;
    }

    @Override
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View v, ViewGroup parent) {
        if (v == null) {
            v = li.inflate(R.layout.child_list_item, parent, false);
        }
        TextView tv = (TextView) v.findViewById(R.id.grouplist);
        String child = (String) getChild(groupPosition, childPosition);
        tv.setText(child);

        return v;
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return true;
    }
}

خیلی ممنونم

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

اگه ممکنه راهنمایی کنین گیر این مشکلم

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط مهندس
      سلام دوستان.
      چجوری میتونم ساعت رو در دیتابیس sqlite ذخیره کنم؟؟
      منظورم اینه ک من یکسری داده دارم میخام وقتی ثبت دیتابیس شد، ساعتی ک کاربر داده رو ثبت میکنه هم در یک فیلد ثبت بشه.
      من یه فیلد با نوع TIME در دیتابیس گذاشتم، اما نمیدونم چجوری و با چه توابعی ساعت رو ذخیره کنم؟؟
      در ضمن راهی هست ک ساعت واقعی ثبت بشه؟؟
      یعنی اینکه اگه یه وقت کاربر ساعت گوشیشو تغییر داد، بازم تایم واقعی time zone ایران ثبت بشه ؟؟؟
    • توسط b.kordtabar
      با سلام
      می خواهم لیستی از داده ها را در پایگاه داده sqlite اندروید ذخیره کنم داده مربوط به ستون آخر نمایش داده نمی شود
      کد مربوطه را ارسال می کنم، اگر می توانید راهنمایی کنید.
      package com.example.t.newsqlite; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import java.util.ArrayList; import java.util.List; public class DatabaseHandler extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 1; private static final String DATABASE_NAME = "carManager"; private static final String TABLE_CONTACTS = "cars"; private static final String KEY_ID = "id"; private static final String KEY_BRAND = "brand"; private static final String KEY_WORKED = "worked"; private static final String KEY_MODEL="model"; public DatabaseHandler(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "(" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_BRAND + " TEXT," + KEY_WORKED + " TEXT," + KEY_MODEL + " TEXT " + ")"; db.execSQL(CREATE_CONTACTS_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS); onCreate(db); } public void addContact(Car car) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(KEY_BRAND, car.getBrand()); values.put(KEY_WORKED, car.getWorked()); values.put(KEY_MODEL, car.getModel()); db.insert(TABLE_CONTACTS, null, values); db.close(); } public Car getContact(int id) { SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.query(TABLE_CONTACTS, new String[]{KEY_ID, KEY_BRAND, KEY_WORKED, KEY_MODEL}, KEY_ID + "=?", new String[]{String.valueOf(id)}, null, null, null, null); if (cursor != null) cursor.moveToFirst(); Car car = new Car(Integer.parseInt(cursor.getString(0)), cursor.getString(1), cursor.getString(2),cursor.getString(3)); // return contact return car; } public List<Car> getAllContacts() { List<Car> contactList = new ArrayList<Car>(); // Select All Query String selectQuery = "SELECT * FROM " + TABLE_CONTACTS; SQLiteDatabase db = this.getWritableDatabase(); Cursor cursor = db.rawQuery(selectQuery, null); // looping through all rows and adding to list if (cursor.moveToFirst()) { do { Car car = new Car(); car.setID(Integer.parseInt(cursor.getString(0))); car.setBrand(cursor.getString(1)); car.setWorked(cursor.getString(2)); car.setModel(cursor.getString(3)); // Adding contact to list contactList.add(car); } while (cursor.moveToNext()); } // return contact list return contactList; } public int getContactsCount() { String countQuery = "SELECT * FROM " + TABLE_CONTACTS; SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.rawQuery(countQuery, null); cursor.close(); // return count return cursor.getCount(); } public int updateContact(Car car) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(KEY_BRAND, car.getBrand()); values.put(KEY_WORKED, car.getWorked()); values.put(KEY_MODEL, car.getModel()); // updating row return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?", new String[] { String.valueOf(car.getID()) }); } public void deleteContact(Car contact) { SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_CONTACTS, KEY_ID + " = ?", new String[] { String.valueOf(contact.getID()) }); db.close(); } } package com.example.t.newsqlite; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.TextView; public class AndroidSQLiteTutorialActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); DatabaseHandler db = new DatabaseHandler(this); /** * CRUD Operations * */ // Inserting Contacts Log.d("Insert: ", "Inserting .."); db.addContact(new Car("رنو","کارکرده","GGF")); db.addContact(new Car("تویوتا","صفر کیلومتر","FD")); db.addContact(new Car("بیوک", "حواله","GDG")); // Reading all contacts Log.d("Reading: ", "Reading all contacts.."); List<Car> car = db.getAllContacts(); for (Car cn : car) { String log = "Id: " + cn.getID() + " ,Brand: " + cn.getBrand() + " ,Worked: " + cn.getWorked() + " ,Model: " + cn.getModel(); // Writing Contacts to log Log.d("Name: ", log); } } } package com.example.t.newsqlite; public class Car { //private variables int id; String brand; String worked; String model; public Car(){ } public Car(int id, String brand,String worked,String model){ this.id = id; this.brand=brand; this.worked=worked; this.model=model; } // constructor public Car(String brand,String worked,String model){ this.brand=brand; this.worked=worked; this.model=model; } public int getID(){ return this.id; } public void setID(int id){ this.id = id; } // getting name public String getBrand(){ return this.brand; } // setting name public void setBrand(String brand){ this.brand = brand; } // getting phone number public String getWorked(){ return this.worked; } // setting phone number public void setWorked(String worked){ this.worked = worked; } public String getModel(){ return this.model; } public void setModel(String model){ this.model = model; } }  
    • توسط ilalia
      باسلام
      سوال من اینه که چه مواقعی باید از دیتا بیس استفاده کرد؟
      من یک برنامه میخوام بسازم که توش میخوام عکس و فیلم آموزشی بذارم، در آینده هم میخوام طوری باشه که کاربر ها بتونن عکس یا فیلم بهش آپلود کنن،
      حالا بنظرتون دیتا بیس نیاز هست یا نه؟
    • توسط مهندس
      با سلام.
      من میخام یه اپلیکیشن کتاب بسازم، ک نویسنده اش تمام صفحاتو بصورت عکس اماده کرده.حجمشون خیلی بالاس، حتی اگه بخام با نرم افزار هم حجمو پایین بیارم نهایتا میشه یک گیگ
      چون زمانم محدوده،و تو عرض چند روز میخام پروژه رو ببندم،چ راه حلی پیشنهاد میکنید؟
      بدون اینکه بخام از وب ویو و یا تکست ویو استفاده کنم.
       
      با این عکسا چجوری میتونم اپ رو بسازم؟؟؟
    • توسط b.hbb
      با سلام
      من یه برنامه ی فروش اندروییدی نوشتم که اولین بار یه فایل sqlite رو از فولدر assets  به محل سیستمی دیتابیس این برنامه کپی میکنه ،  برنامه همیشه درست کار میکرده ولی تا حالا دو تا مشتری یه روز که دستگاه رو روشن کردن دیگه نتونستن لاگین کنن ، وقتی دیتابیس رو برای بررسی ذخیره کردم دیدم خالی شده، حتی هیچ table ای موجود نیست ، کاربر هم مطمئنا کاری مثل clear data نکرده ، نمیدونم چی باعث شده این اتفاق بیفته
       

  • دوره آموزشی اندروید ایران کانادا آموزش ویدئویی اندروید آموزش برنامه نویسی اندروید اندروید کاپ دوره آنلاین اندروید کتاب های آموزشی اندروید بسته آموزشی اندروید دوره برنامه نویسی اندروید آموزش Kotlin آموزش برنامه نویسی ios مهارت های فروش
    آموزش برنامه نویسی اندروید
  • فایل