رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

با سلام دوستان من می خوام لیست ویو به شکل زیر بسازم که اطلاعاتم را از دیتابیس و جدول category می خونم

دسته 1

--- زیر دسته 11

--- زیر دسته 12

دسته2

دسته3

--- زیر دسته31

--- زیر دسته 32

 

جدولم دارای فیلدهای id,name,parent_id هستش که درون parent_id شماره id دسته والد مشخض می شود و می خوام هر دسته که دارای parent_id باشد بره و زیر دسته والد خود قرار بگیرد

 

من کدهای زیر را برای نمایش دسته بندی نوشتم مشکلی ندارد فقط موندم چطور زیر مجموعه ها را اضافه کنم

public class Marjaa_Categories_Activity extends ActionBarActivity {
    ListView lv;
    int catID = 0;

    private database db;
    private String[] name;
    private String[] cat_id;
    private String[] parent_id;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_marjaa_categories);


       

        // call cat id
        Bundle ex = getIntent().getExtras();
        catID = Integer.parseInt(ex.getString("catID"));


        // connect to database
        db = new database(this);
        db.useable();

        refresher();

        lv = (ListView) findViewById(R.id.list);
        try {
            lv.setAdapter(new AA());
        } catch (Exception e){
        Toast.makeText(Marjaa_Categories_Activity.this, e.getMessage(), Toast.LENGTH_LONG).show();
        }

        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent i = new Intent(Marjaa_Categories_Activity.this, Marjaa_Contents_Activity.class);
                i.putExtra("catID",cat_id[position]);
                startActivity(i);
            }
        });
    }


    class AA extends ArrayAdapter<String> {

        public AA(){
            super(Marjaa_Categories_Activity.this,R.layout.item_list_marjaa_categories,name);

        }
        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            LayoutInflater in = getLayoutInflater();
            View row = in.inflate(R.layout.item_list_marjaa_categories, parent, false);
            try {


                TextView txt_name = (TextView) row.findViewById(R.id.txtNameItem);
                final ImageView fav = (ImageView) row.findViewById(R.id.imgItem);

                Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/BKoodakBold.ttf");
                txt_name.setTypeface(tf);


                txt_name.setText(name[position]);


            }catch (Exception e){
                Toast.makeText(Marjaa_Categories_Activity.this, e.getMessage(), Toast.LENGTH_LONG).show();
            }
            return (row);
        }

    }

    private void refresher(){
        try {
            db.open();
            int save = db.categories_field(catID, "name");
            name = new String[save];
            cat_id = new String[save];
            parent_id = new String[save];

            for (int i = 0; i < save; i++) {
                name[i] = db.categories_list(catID, i, 1);
                cat_id[i] = db.categories_list(catID, i, 0);
                parent_id[i] = db.categories_list(catID, i, 3);
            }
            db.close();
        } catch (Exception e){
            Toast.makeText(Marjaa_Categories_Activity.this, e.getMessage(), Toast.LENGTH_LONG).show();
        }
    }
}

 

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

سلام دوستان من با کد زیر می خوام از لیست ویو که هر آیتم در بعضی جاها دارای دو فرزند سه و یا فقط خود آیتم بدون فرزند هست را باز و بسته می کنم
حالا می خوام آیتم نهایی (چه آیتم اصلی یا فرزند باشد ) رو که کلیک می کنم بره صفحه بعد ولی تو این نوع لیست ویوها نمی دونم دقیقاً چطور به این نتیجه برسم

final NLevelAdapter adapter = new NLevelAdapter(list);
            listView.setAdapter(adapter);
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                        long arg3) {
                    ((NLevelAdapter) listView.getAdapter()).toggle(arg2);
                    ((NLevelAdapter) listView.getAdapter()).getFilter().filter();

                    NLevelItem item = (NLevelItem)adapter.getItem(arg2);
                    String row = ((SomeObject)item.getWrappedObject()).getName();
                    Log.i("DEBUG","Record ID : " + row);

                       /* if () {
                            Intent intent = new Intent(Marjaa_Categories_Activity.this, Marjaa_single_Activity.class);
                            intent.putExtra("catID", catID);
                            intent.putExtra("cat_id", row);
                            startActivity(intent);
                        }*/                }
            });


و اینهم لینک مطلب اصلی 
http://twocentscode.blogspot.com/2014/02/three-level-expandable-listview.html

دوستان لطفا راهنمایی فرمایید
تشکر

ویرایش شده توسط loeim
لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 2 هفته بعد...
در در 1396/07/15, 21:31:48، Farzad Sarseifi گفته است :

آیا از ExpandableListView استفاده کرده اید برای ساخت لیست ؟

سلام من دقیقا مشکل ایشون رو دارم و میخوام از دیتابیس ExpandableListView رو پر کنم . اگه میشه راهنمایی کنید ممنون 

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...