Razieh Shahraki 49 ارسال شده در ۱ آبان ۱۳۹۲ گزارش اشتراک گذاری ارسال شده در ۱ آبان ۱۳۹۲ از Expandable List View برای گروه بندی لیست استفاده می شود. برای شروع کار پروژه جدیدی ایجاد کنید. در اینجا ما نیاز به 3 فایل xml داریم یکی برای لیست اصلی،دومی برای نمایش گروهها و سومی برای نمایش فرزندهای هر گروه. کد زیر را در فایل activity_main.xml قرار دهید. [shcode=xml]<?xml version="1.0" encoding="utf-8"?> android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="#f4f4f4" > android:id="@+id/lvExp" android:layout_height="match_parent" android:layout_width="match_parent"/> [/shcode]فایل xml دیگری برای نام گروه ها ایجاد کنید(list_group.xml) و کد زیر را در آن قرار دهید. [shcode=xml]<?xml version="1.0" encoding="utf-8"?> android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="8dp" android:background="#000000"> android:id="@+id/lblListHeader" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft" android:textSize="17dp" android:textColor="#f9f93d" /> [/shcode]فایلxmlدیگری به نام list_item.xml برای فرزندهای گروه ها ایجاد کنید. [shcode=xml]<?xml version="1.0" encoding="utf-8"?> android:layout_width="match_parent" android:layout_height="55dip" android:orientation="vertical" > android:id="@+id/lblListItem" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="17dip" android:paddingTop="5dp" android:paddingBottom="5dp" android:paddingLeft="?android:attr/expandableListPreferredChildPaddingLeft" /> [/shcode]از یک کلاس آداپتور سفارشی برای ایجاد لیست سفارشی استفاده می کنیم. یک کلاس جدید به نام ExpandableListAdapter.java ایجاد کنید که از کلاس BaseExpandableListAdapte استفاده می کند. روش های مورد نیاز برای ارائه listview: getGroupView()برای بازگشت به فهرست گروه getChildView()برای بازگشت به لیست آیتم فرزند کد زیر را در فایل ExpandableListAdapter.java قرار دهید. [shcode=java]package com.p30droid.expandablelistview; import java.util.HashMap; import java.util.List; import android.content.Context; import android.graphics.Typeface; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.TextView; public class ExpandableListAdapter extends BaseExpandableListAdapter { private Context _context; private List _listDataHeader; // header titles // child data in format of header title, child title private HashMap> _listDataChild; public ExpandableListAdapter(Context context, List listDataHeader, HashMap> listChildData) { this._context = context; this._listDataHeader = listDataHeader; this._listDataChild = listChildData; } @Override public Object getChild(int groupPosition, int childPosititon) { return this._listDataChild.get(this._listDataHeader.get(groupPosition)) .get(childPosititon); } @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } @Override public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { final String childText = (String) getChild(groupPosition, childPosition); if (convertView == null) { LayoutInflater infalInflater = (LayoutInflater) this._context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = infalInflater.inflate(R.layout.list_item, null); } TextView txtListChild = (TextView) convertView .findViewById(R.id.lblListItem); txtListChild.setText(childText); return convertView; } @Override public int getChildrenCount(int groupPosition) { return this._listDataChild.get(this._listDataHeader.get(groupPosition)) .size(); } @Override public Object getGroup(int groupPosition) { return this._listDataHeader.get(groupPosition); } @Override public int getGroupCount() { return this._listDataHeader.size(); } @Override public long getGroupId(int groupPosition) { return groupPosition; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { String headerTitle = (String) getGroup(groupPosition); if (convertView == null) { LayoutInflater infalInflater = (LayoutInflater) this._context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = infalInflater.inflate(R.layout.list_group, null); } TextView lblListHeader = (TextView) convertView .findViewById(R.id.lblListHeader); lblListHeader.setTypeface(null, Typeface.BOLD); lblListHeader.setText(headerTitle); return convertView; } @Override public boolean hasStableIds() { return false; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } }[/shcode] کد زیر را در فایل MainActivity.java قرار می دهیم. [shcode=java]package com.p30droid.expandablelistview; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.ExpandableListView; import android.widget.ExpandableListView.OnChildClickListener; import android.widget.ExpandableListView.OnGroupClickListener; import android.widget.ExpandableListView.OnGroupCollapseListener; import android.widget.ExpandableListView.OnGroupExpandListener; import android.widget.Toast; public class MainActivity extends Activity { ExpandableListAdapter listAdapter; ExpandableListView expListView; List listDataHeader; HashMap> listDataChild; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // get the listview expListView = (ExpandableListView) findViewById(R.id.lvExp); // preparing list data prepareListData(); listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild); // setting list adapter expListView.setAdapter(listAdapter); } /* * Preparing the list data */ private void prepareListData() { listDataHeader = new ArrayList(); listDataChild = new HashMap>(); // Adding child data listDataHeader.add("Top 250"); listDataHeader.add("Now Showing"); listDataHeader.add("Coming Soon.."); // Adding child data List top250 = new ArrayList(); top250.add("The Shawshank Redemption"); top250.add("The Godfather"); top250.add("The Godfather: Part II"); top250.add("Pulp Fiction"); top250.add("The Good, the Bad and the Ugly"); top250.add("The Dark Knight"); top250.add("12 Angry Men"); List nowShowing = new ArrayList(); nowShowing.add("The Conjuring"); nowShowing.add("Despicable Me 2"); nowShowing.add("Turbo"); nowShowing.add("Grown Ups 2"); nowShowing.add("Red 2"); nowShowing.add("The Wolverine"); List comingSoon = new ArrayList(); comingSoon.add("2 Guns"); comingSoon.add("The Smurfs 2"); comingSoon.add("The Spectacular Now"); comingSoon.add("The Canyons"); comingSoon.add("Europa Report"); listDataChild.put(listDataHeader.get(0), top250); // Header, Child data listDataChild.put(listDataHeader.get(1), nowShowing); listDataChild.put(listDataHeader.get(2), comingSoon); } }[/shcode] خروجی به صورت زیر می باشد. http://p30droid.com/Uploader/do.php?img=208[/img] نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
tacyon 2 ارسال شده در ۲۷ فروردین ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۲۷ فروردین ۱۳۹۳ سلام خیلی ممنون از شما یک چیز کم داره، می خوایم یک لیست زیر شاخه کلیک کنیم تا بیاد صفحه دیگه یا Toast نشان بدهد اینو لازم دارم با تشکر نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Razieh Shahraki 49 ارسال شده در ۲۸ فروردین ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۲۸ فروردین ۱۳۹۳ سلامتوی فایل MainActivity.java بعد خط 36 کد زیر و اضافه کنیدtoast نشون میده [shcode=java] expListView.setOnChildClickListener(new OnChildClickListener() { public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { final String selected = (String) listAdapter.getChild( groupPosition, childPosition); Toast.makeText(getBaseContext(), selected, Toast.LENGTH_LONG) .show(); return true; } });[/shcode] نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
tacyon 2 ارسال شده در ۲۸ فروردین ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۲۸ فروردین ۱۳۹۳ سلام متاسفانه کار نکرد، اصلا Toast نشون نمیده! نه گروه پدر و نه فرزند نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Razieh Shahraki 49 ارسال شده در ۲۹ فروردین ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۲۹ فروردین ۱۳۹۳ کد کامل شو گذاشتم[shcode=java]package com.p30droid.expandablelistview; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.ExpandableListView; import android.widget.ExpandableListView.OnChildClickListener; import android.widget.ExpandableListView.OnGroupClickListener; import android.widget.ExpandableListView.OnGroupCollapseListener; import android.widget.ExpandableListView.OnGroupExpandListener; import android.widget.Toast; public class MainActivity extends Activity { ExpandableListAdapter listAdapter; ExpandableListView expListView; List listDataHeader; HashMap> listDataChild; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // get the listview expListView = (ExpandableListView) findViewById(R.id.lvExp); // preparing list data prepareListData(); listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild); // setting list adapter expListView.setAdapter(listAdapter); expListView.setOnChildClickListener(new OnChildClickListener() { public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { final String selected = (String) listAdapter.getChild( groupPosition, childPosition); Toast.makeText(getBaseContext(), selected, Toast.LENGTH_LONG) .show(); return true; } }); } /* * Preparing the list data */ private void prepareListData() { listDataHeader = new ArrayList(); listDataChild = new HashMap>(); // Adding child data listDataHeader.add("Top 250"); listDataHeader.add("Now Showing"); listDataHeader.add("Coming Soon.."); // Adding child data List top250 = new ArrayList(); top250.add("The Shawshank Redemption"); top250.add("The Godfather"); top250.add("The Godfather: Part II"); top250.add("Pulp Fiction"); top250.add("The Good, the Bad and the Ugly"); top250.add("The Dark Knight"); top250.add("12 Angry Men"); List nowShowing = new ArrayList(); nowShowing.add("The Conjuring"); nowShowing.add("Despicable Me 2"); nowShowing.add("Turbo"); nowShowing.add("Grown Ups 2"); nowShowing.add("Red 2"); nowShowing.add("The Wolverine"); List comingSoon = new ArrayList(); comingSoon.add("2 Guns"); comingSoon.add("The Smurfs 2"); comingSoon.add("The Spectacular Now"); comingSoon.add("The Canyons"); comingSoon.add("Europa Report"); listDataChild.put(listDataHeader.get(0), top250); // Header, Child data listDataChild.put(listDataHeader.get(1), nowShowing); listDataChild.put(listDataHeader.get(2), comingSoon); } }[/shcode] نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
tacyon 2 ارسال شده در ۳۰ فروردین ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۳۰ فروردین ۱۳۹۳ سلام ببخشید، خیلی ممنون از پاسخگویی شما، کلا کد شما کپی کردم ، ولی بازم حل نشد لطف می کنی دانلود پروژه همین رو بزاری خیلی ممنون نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
tacyon 2 ارسال شده در ۳۱ فروردین ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۳۱ فروردین ۱۳۹۳ سلام مشکلم حل شد، باید [shcode=java]import android.widget.ExpandableListAdapter;[/shcode] خذف شود نمیشه از طریق ArrayList فراخوانی کرد، مثلا در String.xml چندتا آیتم می سازیم، ExpandableListView از طریق اون آیتم ها نمایش داده بشه، با چی کدی ایجاد کنیم؟ [shcode=java]listDataHeader = new ArrayList(R.array.list_fehrest_array);[/shcode] شبیه این کد باشه، ولی کار نمی کنه در اینترنت هر چه گشتم پیدا نبود کلا کد ListView با ExpandableListView فرق می کنه نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
radicall 0 ارسال شده در ۱۲ شهریور ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۱۲ شهریور ۱۳۹۳ سلام و خسته نباشید یه سوال من میخوام چنانچه کاربر روی هر کدوم از زیر منوها کلیک کرد یه اکتیویتی جدید بازکنه در واقع هر کدوم از زیر منوها واسه خودشون اکتیویتی جدا داشته باشند ممنون میشم راهنمایی کنید و یه سوال اینکه امکانش هست که به فرض یکی از ایتم های زیر منو نداشته باشه و خودش هدایت بشه به اکتیویتی جدید و سوال اخر میشه ایکن زیر منو رو عوض کرد مثلا + بشه تا زیر منو باز بشه مرسی نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Razieh Shahraki 49 ارسال شده در ۱۲ شهریور ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۱۲ شهریور ۱۳۹۳ سلام دوست عزیز همه اینایی که گفتین با Expandable List View سفارشی میشه انجام داد نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
radicall 0 ارسال شده در ۱۲ شهریور ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۱۲ شهریور ۱۳۹۳ متوجه سفارشی بودن نمیشم امکانش هست توضیح بدید حداقل واسه انتخاب رو هر زیر منو نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Razieh Shahraki 49 ارسال شده در ۱۲ شهریور ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۱۲ شهریور ۱۳۹۳ سلاماگه اموزش ها رو دیده باشی لیست ویو سفارشی هست توشون.اینم مثل همونه خودمون میایم فایل xml برای گروه و زیر گروه ایجاد میکنیم و از اونا استفاده میکنیم این سمپل ها رو ببین متوجه میشی http://www.techiecommunity.net/Android/Android-ExpandableListView-Layout-Example http://www.dreamincode.net/forums/topic/270612-how-to-get-started-with-expandablelistview/ https://github.com/tjerkw/Android-SlideExpandableListView http://www.learn-android-easily.com/2013/07/android-expandablelistview-example.html 1 نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Razieh Shahraki 49 ارسال شده در ۱۳ شهریور ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۱۳ شهریور ۱۳۹۳ برای رفتن به اکتیویتی دیگه توی این نوع منو کد زیر بجای کد اکتیویتی قرار بدین [shcode=java] package com.p30droid.expandablelistview; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.ExpandableListView; import android.widget.ExpandableListView.OnChildClickListener; import android.widget.ExpandableListView.OnGroupClickListener; import android.widget.ExpandableListView.OnGroupCollapseListener; import android.widget.ExpandableListView.OnGroupExpandListener; import android.widget.Toast; public class MainActivity extends Activity { ExpandableListAdapter listAdapter; ExpandableListView expListView; List listDataHeader; HashMap> listDataChild; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // get the listview expListView = (ExpandableListView) findViewById(R.id.lvExp); // preparing list data prepareListData(); listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild); // setting list adapter expListView.setAdapter(listAdapter); expListView.setOnChildClickListener(new OnChildClickListener() { public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { final String selected = (String) listAdapter.getChild( groupPosition, childPosition); // Toast.makeText(getBaseContext(), selected, Toast.LENGTH_LONG) // .show(); finish(); startActivity(new Intent(MainActivity.this,page2.class)); return true; } }); } /* * Preparing the list data */ private void prepareListData() { listDataHeader = new ArrayList(); listDataChild = new HashMap>(); // Adding child data listDataHeader.add("Top 250"); listDataHeader.add("Now Showing"); listDataHeader.add("Coming Soon.."); // Adding child data List top250 = new ArrayList(); top250.add("The Shawshank Redemption"); top250.add("The Godfather"); top250.add("The Godfather: Part II"); top250.add("Pulp Fiction"); top250.add("The Good, the Bad and the Ugly"); top250.add("The Dark Knight"); top250.add("12 Angry Men"); List nowShowing = new ArrayList(); nowShowing.add("The Conjuring"); nowShowing.add("Despicable Me 2"); nowShowing.add("Turbo"); nowShowing.add("Grown Ups 2"); nowShowing.add("Red 2"); nowShowing.add("The Wolverine"); List comingSoon = new ArrayList(); comingSoon.add("2 Guns"); comingSoon.add("The Smurfs 2"); comingSoon.add("The Spectacular Now"); comingSoon.add("The Canyons"); comingSoon.add("Europa Report"); listDataChild.put(listDataHeader.get(0), top250); // Header, Child data listDataChild.put(listDataHeader.get(1), nowShowing); listDataChild.put(listDataHeader.get(2), comingSoon); } }[/shcode] برای تغییر ایکن لیست فایل زیر و توی پوشه دراویبل ایجاد کنین [shcode=xml]<?xml version="1.0" encoding="utf-8"?> android:drawable="@drawable/down"> android:drawable="@drawable/up"> [/shcode] و دوتا ایکن برای حالت های بسته بودن منو و باز بودن اون توی پشوه دراویبل قرار بدین و کد پایین و توی فایل activity_main.xml توی تگ ExpandableListView تایپ کنین [shcode=xml]android:groupIndicator="@drawable/indicator"[/shcode] خب تا اینجا ایکن لیست عوض شد و با کلیک روی هر ایتم میره صفحه بعد حالا اگه میخوای بهش بگی هر ایتم توی یه اکتیویتی بره اینجوری کد و عوض کن [shcode=java] expListView.setOnChildClickListener(new OnChildClickListener() { public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { final String selected = (String) listAdapter.getChild( groupPosition, childPosition); if(groupPosition==0 && childPosition==0){ finish(); startActivity(new Intent(MainActivity.this,page2.class)); } return true; } });[/shcode] اینجا من فقط بهش گفتم وقتی روی گروه اول که ایدیش 0 هست و فرزند اولش که ایدیش 0 هست کلیک شد بره اکتیویتی page2 رو اجرا کنه برای بقیه هم میتونی if بذاری و ادامه بدی یا اینکه عبارتی که روش کلیک شده رو توی شرط قرار بدی .ایتمی که کلیک میشه مقداری توی متغیر selected هست میتونی استفاده کنی برای گروه هم میتونی قسمتی که گزینه های لیست هست و غیرفعال کنی مثل این[shcode=java]List top250 = new ArrayList(); /*top250.add("The Shawshank Redemption"); top250.add("The Godfather"); top250.add("The Godfather: Part II"); top250.add("Pulp Fiction"); top250.add("The Good, the Bad and the Ugly"); top250.add("The Dark Knight"); top250.add("12 Angry Men");*/[/shcode] و کد زیر و برای کلیک روی گروه به برنامه اضافه کنی [shcode=java] expListView.setOnGroupClickListener(new OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub Toast.makeText(getBaseContext(), "روی گروه کلیک شد", Toast.LENGTH_LONG) .show(); return false; } });[/shcode] توی این قسمت هم میتونی بگی اگر ایدی گروه 0 بود چیکار کنه 1 بود چیکار و ... نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
radicall 0 ارسال شده در ۱۴ شهریور ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۱۴ شهریور ۱۳۹۳ با سلام و خسته نباشید ممنون از اینکه جواب سوال ما رو دادید یه سوال : اگر بخواهم به فرض تقریبا 50 تا آیتم و هر کدوم 4 یا 5 تا زیر آیتم داشته باشه و هر کدوم به یه اکتیویتی جدید منتقل بشه آیا باید تقریبا به همون اندازه اکتیویتی درست کنیم. به نظرتون اینکار عاقلانه هستش یا شما پیشنهاد بهتری میدید نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
radicall 0 ارسال شده در ۱۴ شهریور ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۱۴ شهریور ۱۳۹۳ سلام یه سوال دیگه اولی اینکه کد خطا داره امکانش هست راهنمایی کنید یکی از ایتم ها زیرمنو نداره منم کدش رو انتهای کد نوشتم تا به یه صفحه جدید بره ولی خطا میده و دوم اینکه خواستم بدونم چه طور میشه ایکن که زیر منو میشه رو حذفش کرد چون زیر منو نداره package com.example.expanlist;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.ExpandableListView;import android.widget.ExpandableListView.OnChildClickListener;import android.widget.ExpandableListView.OnGroupClickListener;import android.widget.ExpandableListView.OnGroupCollapseListener;import android.widget.ExpandableListView.OnGroupExpandListener;import android.widget.Toast;public class MainActivity extends Activity { ExpandableListAdapter listAdapter; ExpandableListView expListView; List listDataHeader; HashMap> listDataChild; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // get the listview expListView = (ExpandableListView) findViewById(R.id.lvExp); // preparing list data prepareListData(); listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild); // setting list adapter expListView.setAdapter(listAdapter); expListView.setOnChildClickListener(new OnChildClickListener() { public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { final String selected = (String) listAdapter.getChild( groupPosition, childPosition); if(groupPosition==0 && childPosition==0){ finish(); startActivity(new Intent(MainActivity.this,page3.class)); } if (groupPosition==0 && childPosition==1){ finish(); startActivity(new Intent(MainActivity.this,page2.class)); } if (groupPosition==1 && childPosition==0){ finish(); startActivity(new Intent(MainActivity.this,page2.class)); } return true;} });} /* * Preparing the list data */ private void prepareListData() { listDataHeader = new ArrayList(); listDataChild = new HashMap>(); // Adding child data listDataHeader.add("Top 250"); listDataHeader.add("Now Showing"); listDataHeader.add("Coming Soon.."); // Adding child data List top250 = new ArrayList(); top250.add("The Shawshank Redemption"); top250.add("The Godfather"); top250.add("The Godfather: Part II"); top250.add("Pulp Fiction"); top250.add("The Good, the Bad and the Ugly"); top250.add("The Dark Knight"); top250.add("12 Angry Men"); List nowShowing = new ArrayList(); List comingSoon = new ArrayList(); comingSoon.add("2 Guns"); comingSoon.add("The Smurfs 2"); comingSoon.add("The Spectacular Now"); comingSoon.add("The Canyons"); comingSoon.add("Europa Report"); listDataChild.put(listDataHeader.get(0), top250); // Header, Child data listDataChild.put(listDataHeader.get(1), nowShowing); listDataChild.put(listDataHeader.get(2), comingSoon); expListView.setOnGroupClickListener(new OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub final String selected = (String) listAdapter.getGroup(groupPosition); if(groupPosition==0 ) { finish(); startActivity(new Intent(MainActivity.this,page3.class)); return false; }}}); }} نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
radicall 0 ارسال شده در ۲۵ شهریور ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۲۵ شهریور ۱۳۹۳ سلام خسته نباشید میخواستم بدونم مشکل فراخوانی از دیتابیس و نمایش در expandlistview رو کار کردید سرپرست انجمن به عرضتون برسونم صندوق ورودی خصوصیتون پر شده و کاربری نمیتونه پیغام بده مرسی نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
do-android 1 ارسال شده در ۲۷ شهریور ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۲۷ شهریور ۱۳۹۳ برای رفتن به اکتیویتی دیگه توی این نوع منو کد زیر بجای کد اکتیویتی قرار بدین [shcode=java] package com.p30droid.expandablelistview; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.ExpandableListView; import android.widget.ExpandableListView.OnChildClickListener; import android.widget.ExpandableListView.OnGroupClickListener; import android.widget.ExpandableListView.OnGroupCollapseListener; import android.widget.ExpandableListView.OnGroupExpandListener; import android.widget.Toast; public class MainActivity extends Activity { ExpandableListAdapter listAdapter; ExpandableListView expListView; List listDataHeader; HashMap> listDataChild; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // get the listview expListView = (ExpandableListView) findViewById(R.id.lvExp); // preparing list data prepareListData(); listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild); // setting list adapter expListView.setAdapter(listAdapter); expListView.setOnChildClickListener(new OnChildClickListener() { public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { final String selected = (String) listAdapter.getChild( groupPosition, childPosition); // Toast.makeText(getBaseContext(), selected, Toast.LENGTH_LONG) // .show(); finish(); startActivity(new Intent(MainActivity.this,page2.class)); return true; } }); } /* * Preparing the list data */ private void prepareListData() { listDataHeader = new ArrayList(); listDataChild = new HashMap>(); // Adding child data listDataHeader.add("Top 250"); listDataHeader.add("Now Showing"); listDataHeader.add("Coming Soon.."); // Adding child data List top250 = new ArrayList(); top250.add("The Shawshank Redemption"); top250.add("The Godfather"); top250.add("The Godfather: Part II"); top250.add("Pulp Fiction"); top250.add("The Good, the Bad and the Ugly"); top250.add("The Dark Knight"); top250.add("12 Angry Men"); List nowShowing = new ArrayList(); nowShowing.add("The Conjuring"); nowShowing.add("Despicable Me 2"); nowShowing.add("Turbo"); nowShowing.add("Grown Ups 2"); nowShowing.add("Red 2"); nowShowing.add("The Wolverine"); List comingSoon = new ArrayList(); comingSoon.add("2 Guns"); comingSoon.add("The Smurfs 2"); comingSoon.add("The Spectacular Now"); comingSoon.add("The Canyons"); comingSoon.add("Europa Report"); listDataChild.put(listDataHeader.get(0), top250); // Header, Child data listDataChild.put(listDataHeader.get(1), nowShowing); listDataChild.put(listDataHeader.get(2), comingSoon); } }[/shcode] برای تغییر ایکن لیست فایل زیر و توی پوشه دراویبل ایجاد کنین [shcode=xml]<?xml version="1.0" encoding="utf-8"?> android:drawable="@drawable/down"> android:drawable="@drawable/up"> [/shcode] و دوتا ایکن برای حالت های بسته بودن منو و باز بودن اون توی پشوه دراویبل قرار بدین و کد پایین و توی فایل activity_main.xml توی تگ ExpandableListView تایپ کنین [shcode=xml]android:groupIndicator="@drawable/indicator"[/shcode] خب تا اینجا ایکن لیست عوض شد و با کلیک روی هر ایتم میره صفحه بعد حالا اگه میخوای بهش بگی هر ایتم توی یه اکتیویتی بره اینجوری کد و عوض کن [shcode=java] expListView.setOnChildClickListener(new OnChildClickListener() { public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { final String selected = (String) listAdapter.getChild( groupPosition, childPosition); if(groupPosition==0 && childPosition==0){ finish(); startActivity(new Intent(MainActivity.this,page2.class)); } return true; } });[/shcode] اینجا من فقط بهش گفتم وقتی روی گروه اول که ایدیش 0 هست و فرزند اولش که ایدیش 0 هست کلیک شد بره اکتیویتی page2 رو اجرا کنه برای بقیه هم میتونی if بذاری و ادامه بدی یا اینکه عبارتی که روش کلیک شده رو توی شرط قرار بدی .ایتمی که کلیک میشه مقداری توی متغیر selected هست میتونی استفاده کنی برای گروه هم میتونی قسمتی که گزینه های لیست هست و غیرفعال کنی مثل این[shcode=java]List top250 = new ArrayList(); /*top250.add("The Shawshank Redemption"); top250.add("The Godfather"); top250.add("The Godfather: Part II"); top250.add("Pulp Fiction"); top250.add("The Good, the Bad and the Ugly"); top250.add("The Dark Knight"); top250.add("12 Angry Men");*/[/shcode] و کد زیر و برای کلیک روی گروه به برنامه اضافه کنی [shcode=java] expListView.setOnGroupClickListener(new OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub Toast.makeText(getBaseContext(), "روی گروه کلیک شد", Toast.LENGTH_LONG) .show(); return false; } });[/shcode] توی این قسمت هم میتونی بگی اگر ایدی گروه 0 بود چیکار کنه 1 بود چیکار و ... کد شما اصلا کار نمیکنه !!! این کد : expListView.setOnChildClickListener(new OnChildClickListener() { public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { final String selected = (String) listAdapter.getChild( groupPosition, childPosition); if(groupPosition==0 && childPosition==0){ finish(); startActivity(new Intent(MainActivity.this,page2.class)); } return true; } }); اصلا جواب نداد. هر کاری کردم فایده نداشت. به جای startActivity هم از Toast استفاده کردم یا هر دستوری که توی setOnChildClickListener گذاشتم اجرا نشد وقتی روی Child ها کلیک می کنم هیچ اتفاقی نمیفته چرا ؟؟؟؟؟؟؟ نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
جادوگر جوان 0 ارسال شده در ۲۶ آبان ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۲۶ آبان ۱۳۹۳ سلام چطوری توی ایتم های پدر عکس قرار بدم؟ میتونید کدش رو بهم بگید؟ نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
ندا 0 ارسال شده در ۲۵ فروردین ۱۳۹۴ گزارش اشتراک گذاری ارسال شده در ۲۵ فروردین ۱۳۹۴ سلام ببخشید بنده یه سوال داشتم من میخواستم همین Expandable List View رو با json پر کنم اما موفق نمیشم ممکنه راهنماییم کنید؟ نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Rahaa 0 ارسال شده در ۲۸ فروردین ۱۳۹۴ گزارش اشتراک گذاری ارسال شده در ۲۸ فروردین ۱۳۹۴ سلام خسته نباشید از آموزشتتون ممنونم,فقط یچیزی:اگر بخوایم با کلیک بر هر آیتم به یک وب ویو بره باید چه کدی رو اضافه کنیم واقعا بهش احتیاج دارم لطفاراهنمایی بفرمائید.تشکر نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
ندا 0 ارسال شده در ۳۱ فروردین ۱۳۹۴ گزارش اشتراک گذاری ارسال شده در ۳۱ فروردین ۱۳۹۴ سلام ببخشید بنده یه سوال داشتم من میخواستم همین Expandable List View رو با json پر کنم اما موفق نمیشم ممکنه راهنماییم کنید؟ نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Rahaa 0 ارسال شده در ۱۰ اردیبهشت ۱۳۹۴ گزارش اشتراک گذاری ارسال شده در ۱۰ اردیبهشت ۱۳۹۴ سلام مدیر جان من ExpandableListView رو نوشتم ولی برای قسمت جستجو باید از چه کدی استفاده کنم؟لطفا راهنمایی بفرمائید،ممنون نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
md98 6 ارسال شده در ۲۱ مرداد ۱۳۹۴ گزارش اشتراک گذاری ارسال شده در ۲۱ مرداد ۱۳۹۴ با سلام و خسته نباشید خیلی ممنون بابت اموزش خوبی که گذاشتید خیلی بدردمون خورد ی سوالی داشتم که یکی از این دوستان هم پرسیده بودن اگه ما تعداد زیادی آیتم و زیر آیتم (پدر و فرزند) داشته باشیم چه روشی استفاده کنیم که بهتر باشه ممنون از توجهی که نسبت به کاربرای سایت دارید:shy: نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
md98 6 ارسال شده در ۲۵ مرداد ۱۳۹۴ گزارش اشتراک گذاری ارسال شده در ۲۵ مرداد ۱۳۹۴ با سلام مجدد کدی که گذاشته بودید رو استفاده کردم و جواب هم داد اگه من بخوام که یک key رو ارسال کنم به یک اکتیویتی دیگه و ازش استفاده کنم این کار رو با putExtra قبول نمیکنه چ باید بکنم؟! نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Razieh Shahraki 49 ارسال شده در ۲۵ مرداد ۱۳۹۴ مالک گزارش اشتراک گذاری ارسال شده در ۲۵ مرداد ۱۳۹۴ سلام میشه کدتونو بذارین نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
md98 6 ارسال شده در ۲۵ مرداد ۱۳۹۴ گزارش اشتراک گذاری ارسال شده در ۲۵ مرداد ۱۳۹۴ درست شد!!! خییلی تعجبیه! ولی ی سوال میخوام keyی که ارسال شده به اکتیویتی دیگه بره توی ی string بگرده اگه بود توی لیست ویو نمایش بده مثلا [shcode=java] String[] book_topics={ "Book1-collections", "Book2-muslims's_women", "Book3-Quranic_sciences", "Book4-speech", "Book5-history_of_hadith", "Book6-collections", "Book7-islam_&_other_religions", "Book8-Bibliography", "Book9-Special_Topics", "Book10-collections", "Book11-history", }; String child=bun.getString("childposition"); [/shcode] مثلا من collections رو کلیک کردم باید book1 رو برام توی لیست ویو نمایش بده مرسی نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .