Урок 45. Список-дерево ExpandableListView
Re: Урок 45. Список-дерево ExpandableListView
"А вообще вы можете создать для элементов свой layout, например, с тремя TextView. И к каждому элементу списка (Map) добавить еще по два атрибута: цена и цвет. Далее указываете ваш layout в конструкторе, формируете соответственно массивы childFrom и childTo чтобы сопоставить атрибуты и TextView, и получится, что каждый элемент группы содержит более подробную информацию о смартфоне."
Скиньте пожалуйста такой полный код урока
Скиньте пожалуйста такой полный код урока
Re: Урок 45. Список-дерево ExpandableListView
Ребят Help!!!! Взялся за создание это листа и появилась очень много вопросов.Вообщем есть главное активити (на ней и должны будут происходить изменение) и есть Drawer menu тоже в этой активити , как раз с этим ExpandableListView и checkbox для каждой группы и child.Мне нужно что бы получилось , что при нажатии checkbox для одного или нескольких элементов какое либо действие отображалось в главной активити или изменяло его
адаптер
сам layout главной активити
Желательно хотелось бы развёрнутый ответ, а то я много ещё чего не понимаю
БУДУ ВСЕМ ПРИЗНАТЕЛЕН ЗА ПОМОЩЬ
Код: Выделить всё
package cosm.example.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
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.os.Build;
public class MainActivity extends Activity {
// nav drawer title
private CharSequence mDrawerTitle;
private CharSequence mTitle;
private DrawerLayout mDrawerLayout;
private ExpandableListView mDrawerList;
private ActionBarDrawerToggle mDrawerToggle;
private MyExpandableAdapter mAdapter;
private List<String> mListForGroup;
private HashMap<String, List<String>> mMapForChild;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTitle = mDrawerTitle = getTitle();
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ExpandableListView) findViewById(R.id.myexpandablelistview);
initData();
mAdapter = new MyExpandableAdapter(this, mListForGroup, mMapForChild);
mDrawerList.setAdapter(mAdapter);
mDrawerList.setOnChildClickListener(myOnChildClickListener);
mDrawerList.setOnGroupClickListener(myOnGroupClickListener);
mDrawerList
.setOnGroupCollapseListener(myOnGroupCollapseListener);
mDrawerList.setOnGroupExpandListener(myOnGroupExpandListener);
// enabling action bar app icon and behaving it as toggle button
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer, R.string.app_name, R.string.app_name) {
public void onDrawerClosed(View view) {
getActionBar().setTitle(mTitle);
// calling onPrepareOptionsMenu() to show action bar icons
invalidateOptionsMenu();
}
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(mDrawerTitle);
// calling onPrepareOptionsMenu() to hide action bar icons
invalidateOptionsMenu();
}
};
}
private void initData() {
// TODO Auto-generated method stub
mListForGroup = new ArrayList<String>();
mMapForChild = new HashMap<String, List<String>>();
mListForGroup.add("Цвета");
mListForGroup.add("Картинки");
List<String> listGroupA = new ArrayList<String>();
listGroupA.add("1");
listGroupA.add("2");
listGroupA.add("3");
List<String> listGroupB = new ArrayList<String>();
listGroupB.add("1");
listGroupB.add("2");
listGroupB.add("3");
mMapForChild.put(mListForGroup.get(0), listGroupA);
mMapForChild.put(mListForGroup.get(1), listGroupB);
}
OnChildClickListener myOnChildClickListener = new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
return true;
}
};
OnGroupClickListener myOnGroupClickListener = new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
return false;
}
};
OnGroupCollapseListener myOnGroupCollapseListener = new OnGroupCollapseListener() {
@Override
public void onGroupCollapse(int groupPosition) {
// group collapse at groupPosition
}
};
OnGroupExpandListener myOnGroupExpandListener = new OnGroupExpandListener() {
@Override
public void onGroupExpand(int groupPosition) {
// group expand at groupPosition
}
};
@Override
public void setTitle(CharSequence title) {
mTitle = title;
getActionBar().setTitle(mTitle);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// toggle nav drawer on selecting action bar app icon/title
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
// Handle action bar actions click
switch (item.getItemId()) {
case R.id.action_settings:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
/***
* Called when invalidateOptionsMenu() is triggered
*/
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// if nav drawer is opened, hide the action items
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
return super.onPrepareOptionsMenu(menu);
}
/**
* When using the ActionBarDrawerToggle, you must call it during
* onPostCreate() and onConfigurationChanged()...
*/
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle.syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Pass any configuration change to the drawer toggles
mDrawerToggle.onConfigurationChanged(newConfig);
}
}
Код: Выделить всё
package cosm.example.test;
import java.util.HashMap;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
import android.widget.CompoundButton.OnCheckedChangeListener;
public class MyExpandableAdapter extends BaseExpandableListAdapter {
private static final String TAG = "myLogs";
private Context context;
private List<String> listGroup;
private HashMap<String, List<String>> listChild;
public MyExpandableAdapter(Context c, List<String> lg,
HashMap<String, List<String>> lc) {
context = c;
listGroup = lg;
listChild = lc;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return listChild.get(listGroup.get(groupPosition)).get(childPosition);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.exp_list_child_item,
null);
}
TextView textViewItem = (TextView) convertView.findViewById(R.id.item);
String text = (String) getChild(groupPosition, childPosition);
textViewItem.setText(text);
return convertView;
}
@Override
public int getChildrenCount(int groupPosition) {
return listChild.get(listGroup.get(groupPosition)).size();
}
@Override
public Object getGroup(int groupPosition) {
return listGroup.get(groupPosition);
}
@Override
public int getGroupCount() {
return listGroup.size();
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public View getGroupView(final int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.exp_list_group_item,
null);
}
String textGroup = (String) getGroup(groupPosition);
// get application resource/drawable not in Activity class, using
// context
final CheckBox chek = (CheckBox) convertView
.findViewById(R.id.checkBox1);
chek.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
Log.d(TAG, "cheked " + isChecked + groupPosition);
chekedgrop(isChecked, groupPosition);
}
private void chekedgrop(boolean isChecked, int groupPosition) {
// TODO Auto-generated method stub
Activity activity = null;
switch (groupPosition) {
case 0:
if (chek.isChecked()) {
Log.d(TAG, "adapter girne " + isChecked + groupPosition);
} else {
}
break;
case 1:
Log.d(TAG, "adapter fa " + isChecked + groupPosition);
break;
case 2:
Log.d(TAG, "adapter n " + isChecked + groupPosition);
break;
case 3:
Log.d(TAG, "adapter " + isChecked + groupPosition);
break;
default:
break;
}
}
});
TextView textViewGroup = (TextView) convertView
.findViewById(R.id.group);
textViewGroup.setText(textGroup);
return convertView;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
Код: Выделить всё
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- The main content view -->
<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- The navigation drawer list -->
<ExpandableListView
android:id="@+id/myexpandablelistview"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@drawable/list_background"
android:choiceMode="multipleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp" />
</android.support.v4.widget.DrawerLayout>
БУДУ ВСЕМ ПРИЗНАТЕЛЕН ЗА ПОМОЩЬ
- Вложения
-
- device-2014-07-31-124615.png (46.31 КБ) 14720 просмотров
-
- device-2014-07-31-124607.png (43.36 КБ) 14720 просмотров
-
- device-2014-07-31-124629.png (51.41 КБ) 14720 просмотров
Re: Урок 45. Список-дерево ExpandableListView
Ребят, подскажите почему при тестировании другой странички у меня вылетает с ошибки (страничка с хеллоу вролд ), если удаляю этот код - тогда всё нормально.
public class MainActivity extends Activity {
наверно нужно менять активити для каждой странички?
public class MainActivity extends Activity {
наверно нужно менять активити для каждой странички?
Re: Урок 45. Список-дерево ExpandableListView
"страничка"?LazeR писал(а):Ребят, подскажите почему при тестировании другой странички у меня вылетает с ошибки (страничка с хеллоу вролд ), если удаляю этот код - тогда всё нормально.
public class MainActivity extends Activity {
наверно нужно менять активити для каждой странички?
Re: Урок 45. Список-дерево ExpandableListView
Ну тогда разъясните:
1) что значит "при тестировании другой странички".
2) "вылетает с ошибки" - у любой ошибки есть имя и текст который написан в логах (красными буквами), если сами не можете в нем разобраться, то хотя бы следует прикрепить его к сообщению.
3) "если удаляю этот код" - вы имеете ввиду тот самый "этот код" или какой-то другой?
4) как это относится к этому уроку?
1) что значит "при тестировании другой странички".
2) "вылетает с ошибки" - у любой ошибки есть имя и текст который написан в логах (красными буквами), если сами не можете в нем разобраться, то хотя бы следует прикрепить его к сообщению.
3) "если удаляю этот код" - вы имеете ввиду тот самый "этот код" или какой-то другой?
4) как это относится к этому уроку?
Re: Урок 45. Список-дерево ExpandableListView
как заполнить Expandable ListView при помощи строкового массива ?
Имеется ввиду из StringArray
То-есть другими словами , как сократить код
[syntax=java]
package com.example.hsidesheparsha;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.example.adapter.ExpandableListAdapter;
import android.app.Activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.ExpandableListView;
public class ListMenuTO extends Activity {
ExpandableListAdapter listAdapter;
ExpandableListView expListView;
List<String> listDataHeader;
HashMap<String, List<String>> listDataChild;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_tor);
Resources res = getResources();
String[] names = res.getStringArray(R.array.parshiet);
// get the listview
expListView = (ExpandableListView) findViewById(R.id.lv_to);
// preparing list data
prepareListData();
listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild);
// setting list adapter
expListView.setAdapter(listAdapter);
}
private void prepareListData() {
listDataHeader = new ArrayList<String>();
listDataChild = new HashMap<String, List<String>>();
// // Adding child data
listDataHeader.add("בראשית");
listDataHeader.add("נח");
listDataHeader.add("לך לך");
listDataHeader.add("וירא");
listDataHeader.add("חיי שרה");
listDataHeader.add("תולדות");
listDataHeader.add("ויצא");
listDataHeader.add("וישלח");
listDataHeader.add("וישב");
listDataHeader.add("מקץ");
listDataHeader.add("ויגש");
listDataHeader.add("ויחי");
listDataHeader.add("וארא");
listDataHeader.add("בא");
listDataHeader.add("בשלח");
listDataHeader.add("יתרו");
listDataHeader.add("משפטים");
listDataHeader.add("תרומה");
listDataHeader.add("תצוה");
listDataHeader.add("פרשת זכור");
listDataHeader.add("כי תשא");
listDataHeader.add("ויקהל");
listDataHeader.add("מגלת אסתר");
listDataHeader.add("הוספות ויחי");
listDataHeader.add("הוספות שמות");
listDataHeader.add("הוספות יתרו");
listDataHeader.add("הוספות תצוה");
listDataHeader.add("הוספות כי תשא");
listDataHeader.add("הוספות ויקהל");
listDataHeader.add("הוספות מגלת אסתר");
// Adding child data
List<String> bereshit = new ArrayList<String>();
bereshit.add("א.א");
bereshit.add("א.ב");
bereshit.add("א.ג");
bereshit.add("א.ד");
bereshit.add("ב.א");
bereshit.add("ב.ב");
bereshit.add("ב.ג");
List<String> noah = new ArrayList<String>();
noah.add("א.א");
noah.add("א.ב");
noah.add("א.ג");
noah.add("א.ד");
noah.add("ב.א");
noah.add("ב.ב");
List<String> leh_leha = new ArrayList<String>();
leh_leha.add("א.א");
leh_leha.add("א.ב");
leh_leha.add("א.ג");
leh_leha.add("א.ד");
leh_leha.add("ב.א");
// Adding child data
List<String> vaira = new ArrayList<String>();
vaira.add("א.א");
vaira.add("א.ב");
vaira.add("א.ג");
vaira.add("א.ד");
vaira.add("ב.א");
vaira.add("ב.ב");
vaira.add("ב.ג");
// Adding child data
List<String> haei_sara = new ArrayList<String>();
haei_sara.add("א.א");
haei_sara.add("א.ב");
haei_sara.add("א.ג");
haei_sara.add("א.ד");
haei_sara.add("ב.א");
haei_sara.add("ב.ב");
haei_sara.add("ב.ג");
// Adding child data
List<String> toldot = new ArrayList<String>();
toldot.add("א.א");
toldot.add("א.ב");
toldot.add("א.ג");
toldot.add("א.ד");
toldot.add("ב.א");
toldot.add("ב.ב");
toldot.add("ב.ג");
// Adding child data
List<String> vaece = new ArrayList<String>();
vaece.add("א.א");
vaece.add("א.ב");
vaece.add("א.ג");
vaece.add("א.ד");
vaece.add("ב.א");
vaece.add("ב.ב");
vaece.add("ב.ג");
// Adding child data
List<String> vaishlah = new ArrayList<String>();
vaishlah.add("א.א");
vaishlah.add("א.ב");
vaishlah.add("א.ג");
vaishlah.add("א.ד");
vaishlah.add("ב.א");
vaishlah.add("ב.ב");
vaishlah.add("ב.ג");
// Adding child data
List<String> vaeshev = new ArrayList<String>();
vaeshev.add("א.א");
vaeshev.add("א.ב");
vaeshev.add("א.ג");
vaeshev.add("א.ד");
vaeshev.add("ב.א");
vaeshev.add("ב.ב");
vaeshev.add("ב.ג");
// Adding child data
List<String> mikezz = new ArrayList<String>();
mikezz.add("א.א");
mikezz.add("א.ב");
mikezz.add("א.ג");
mikezz.add("א.ד");
mikezz.add("ב.א");
mikezz.add("ב.ב");
mikezz.add("ב.ג");
// Adding child data
List<String> vaigash = new ArrayList<String>();
vaigash.add("א.א");
vaigash.add("א.ב");
vaigash.add("א.ג");
vaigash.add("א.ד");
vaigash.add("ב.א");
vaigash.add("ב.ב");
vaigash.add("ב.ג");
// Adding child data
List<String> vaehi = new ArrayList<String>();
vaehi.add("א.א");
vaehi.add("א.ב");
vaehi.add("א.ג");
vaehi.add("א.ד");
vaehi.add("ב.א");
vaehi.add("ב.ב");
vaehi.add("ב.ג");
// Adding child data
List<String> vaire = new ArrayList<String>();
vaire.add("א.א");
vaire.add("א.ב");
vaire.add("א.ג");
vaire.add("א.ד");
vaire.add("ב.א");
vaire.add("ב.ב");
vaire.add("ב.ג");
List<String> bo = new ArrayList<String>();
bo.add("א.א");
bo.add("א.ב");
bo.add("א.ג");
bo.add("א.ד");
bo.add("ב.א");
bo.add("ב.ב");
bo.add("ב.ג");
List<String> beshalah = new ArrayList<String>();
beshalah.add("א.א");
beshalah.add("א.ב");
beshalah.add("א.ג");
beshalah.add("א.ד");
beshalah.add("ב.א");
beshalah.add("ב.ב");
beshalah.add("ב.ג");
List<String> itro = new ArrayList<String>();
itro.add("א.א");
itro.add("א.ב");
itro.add("א.ג");
itro.add("א.ד");
itro.add("ב.א");
itro.add("ב.ב");
itro.add("ב.ג");
List<String> mishpatim = new ArrayList<String>();
mishpatim.add("א.א");
mishpatim.add("א.ב");
mishpatim.add("א.ג");
mishpatim.add("א.ד");
mishpatim.add("ב.א");
mishpatim.add("ב.ב");
mishpatim.add("ב.ג");
List<String> truma = new ArrayList<String>();
truma.add("א.א");
truma.add("א.ב");
truma.add("א.ג");
truma.add("א.ד");
truma.add("ב.א");
truma.add("ב.ב");
truma.add("ב.ג");
List<String> tezzave = new ArrayList<String>();
tezzave.add("א.א");
tezzave.add("א.ב");
tezzave.add("א.ג");
tezzave.add("א.ד");
tezzave.add("ב.א");
tezzave.add("ב.ב");
tezzave.add("ב.ג");
List<String> p_zahor = new ArrayList<String>();
p_zahor.add("א.א");
p_zahor.add("א.ב");
p_zahor.add("א.ג");
p_zahor.add("א.ד");
p_zahor.add("ב.א");
p_zahor.add("ב.ב");
p_zahor.add("ב.ג");
List<String> ki_tisa = new ArrayList<String>();
ki_tisa.add("א.א");
ki_tisa.add("א.ב");
ki_tisa.add("א.ג");
ki_tisa.add("א.ד");
ki_tisa.add("ב.א");
ki_tisa.add("ב.ב");
ki_tisa.add("ב.ג");
List<String> vayakel = new ArrayList<String>();
vayakel.add("א.א");
vayakel.add("א.ב");
vayakel.add("א.ג");
vayakel.add("א.ד");
vayakel.add("ב.א");
vayakel.add("ב.ב");
vayakel.add("ב.ג");
List<String> m_ester = new ArrayList<String>();
m_ester.add("א.א");
m_ester.add("א.ב");
m_ester.add("א.ג");
m_ester.add("א.ד");
m_ester.add("ב.א");
m_ester.add("ב.ב");
m_ester.add("ב.ג");
List<String> _vaehi = new ArrayList<String>();
_vaehi.add("א.א");
_vaehi.add("א.ב");
_vaehi.add("א.ג");
_vaehi.add("א.ד");
_vaehi.add("ב.א");
_vaehi.add("ב.ב");
_vaehi.add("ב.ג");
List<String> _shmot = new ArrayList<String>();
_shmot.add("א.א");
_shmot.add("א.ב");
_shmot.add("א.ג");
_shmot.add("א.ד");
_shmot.add("ב.א");
_shmot.add("ב.ב");
_shmot.add("ב.ג");
List<String> _itro = new ArrayList<String>();
_itro.add("א.א");
_itro.add("א.ב");
_itro.add("א.ג");
_itro.add("א.ד");
_itro.add("ב.א");
_itro.add("ב.ב");
_itro.add("ב.ג");
List<String> _tezzave = new ArrayList<String>();
_tezzave.add("א.א");
_tezzave.add("א.ב");
_tezzave.add("א.ג");
_tezzave.add("א.ד");
_tezzave.add("ב.א");
_tezzave.add("ב.ב");
_tezzave.add("ב.ג");
List<String> _ki_tisa = new ArrayList<String>();
_ki_tisa.add("א.א");
_ki_tisa.add("א.ב");
_ki_tisa.add("א.ג");
_ki_tisa.add("א.ד");
_ki_tisa.add("ב.א");
_ki_tisa.add("ב.ב");
_ki_tisa.add("ב.ג");
List<String> _vayakel = new ArrayList<String>();
_vayakel.add("א.א");
_vayakel.add("א.ב");
_vayakel.add("א.ג");
_vayakel.add("א.ד");
_vayakel.add("ב.א");
_vayakel.add("ב.ב");
_vayakel.add("ב.ג");
List<String> _m_ester = new ArrayList<String>();
_m_ester.add("א.א");
_m_ester.add("א.ב");
_m_ester.add("א.ג");
_m_ester.add("א.ד");
_m_ester.add("ב.א");
_m_ester.add("ב.ב");
_m_ester.add("ב.ג");
listDataChild.put(listDataHeader.get(0), bereshit); // Header, Child data
listDataChild.put(listDataHeader.get(1), noah);
listDataChild.put(listDataHeader.get(2), leh_leha);
listDataChild.put(listDataHeader.get(3), vaira);
listDataChild.put(listDataHeader.get(4), haei_sara);
listDataChild.put(listDataHeader.get(5), toldot);
listDataChild.put(listDataHeader.get(6), vaece);
listDataChild.put(listDataHeader.get(7), vaishlah);
listDataChild.put(listDataHeader.get(8), vaeshev);
listDataChild.put(listDataHeader.get(9), mikezz);
listDataChild.put(listDataHeader.get(10), vaigash);
listDataChild.put(listDataHeader.get(11), vaehi);
listDataChild.put(listDataHeader.get(12), vaire);
listDataChild.put(listDataHeader.get(13), bo);
listDataChild.put(listDataHeader.get(14), beshalah);
listDataChild.put(listDataHeader.get(15), itro);
listDataChild.put(listDataHeader.get(16), mishpatim);
listDataChild.put(listDataHeader.get(17), truma);
listDataChild.put(listDataHeader.get(18), tezzave);
listDataChild.put(listDataHeader.get(19), p_zahor);
listDataChild.put(listDataHeader.get(20), ki_tisa);
listDataChild.put(listDataHeader.get(21), vayakel);
listDataChild.put(listDataHeader.get(22), m_ester);
listDataChild.put(listDataHeader.get(23), _vaehi);
listDataChild.put(listDataHeader.get(24), _shmot);
listDataChild.put(listDataHeader.get(25), _itro);
listDataChild.put(listDataHeader.get(26), _tezzave);
listDataChild.put(listDataHeader.get(27), _ki_tisa);
listDataChild.put(listDataHeader.get(28), _vayakel);
listDataChild.put(listDataHeader.get(29), _m_ester);
}
}[/syntax]
и вместо длиннющего куска тип add.(""); передать готовый String[] массивчик.
Ну примерно как здесь
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Resources res = getResources();
String[] name = res.getStringArray(R.array. admurim) ;// это передаю готовый массив .admurim
ListView lv = (ListView) findViewById(R.id.lv);
//вот передаю String[] в ArrayAdapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,name);
lv.setAdapter(adapter);
}
}
Имеется ввиду из StringArray
То-есть другими словами , как сократить код
[syntax=java]
package com.example.hsidesheparsha;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.example.adapter.ExpandableListAdapter;
import android.app.Activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.ExpandableListView;
public class ListMenuTO extends Activity {
ExpandableListAdapter listAdapter;
ExpandableListView expListView;
List<String> listDataHeader;
HashMap<String, List<String>> listDataChild;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_tor);
Resources res = getResources();
String[] names = res.getStringArray(R.array.parshiet);
// get the listview
expListView = (ExpandableListView) findViewById(R.id.lv_to);
// preparing list data
prepareListData();
listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild);
// setting list adapter
expListView.setAdapter(listAdapter);
}
private void prepareListData() {
listDataHeader = new ArrayList<String>();
listDataChild = new HashMap<String, List<String>>();
// // Adding child data
listDataHeader.add("בראשית");
listDataHeader.add("נח");
listDataHeader.add("לך לך");
listDataHeader.add("וירא");
listDataHeader.add("חיי שרה");
listDataHeader.add("תולדות");
listDataHeader.add("ויצא");
listDataHeader.add("וישלח");
listDataHeader.add("וישב");
listDataHeader.add("מקץ");
listDataHeader.add("ויגש");
listDataHeader.add("ויחי");
listDataHeader.add("וארא");
listDataHeader.add("בא");
listDataHeader.add("בשלח");
listDataHeader.add("יתרו");
listDataHeader.add("משפטים");
listDataHeader.add("תרומה");
listDataHeader.add("תצוה");
listDataHeader.add("פרשת זכור");
listDataHeader.add("כי תשא");
listDataHeader.add("ויקהל");
listDataHeader.add("מגלת אסתר");
listDataHeader.add("הוספות ויחי");
listDataHeader.add("הוספות שמות");
listDataHeader.add("הוספות יתרו");
listDataHeader.add("הוספות תצוה");
listDataHeader.add("הוספות כי תשא");
listDataHeader.add("הוספות ויקהל");
listDataHeader.add("הוספות מגלת אסתר");
// Adding child data
List<String> bereshit = new ArrayList<String>();
bereshit.add("א.א");
bereshit.add("א.ב");
bereshit.add("א.ג");
bereshit.add("א.ד");
bereshit.add("ב.א");
bereshit.add("ב.ב");
bereshit.add("ב.ג");
List<String> noah = new ArrayList<String>();
noah.add("א.א");
noah.add("א.ב");
noah.add("א.ג");
noah.add("א.ד");
noah.add("ב.א");
noah.add("ב.ב");
List<String> leh_leha = new ArrayList<String>();
leh_leha.add("א.א");
leh_leha.add("א.ב");
leh_leha.add("א.ג");
leh_leha.add("א.ד");
leh_leha.add("ב.א");
// Adding child data
List<String> vaira = new ArrayList<String>();
vaira.add("א.א");
vaira.add("א.ב");
vaira.add("א.ג");
vaira.add("א.ד");
vaira.add("ב.א");
vaira.add("ב.ב");
vaira.add("ב.ג");
// Adding child data
List<String> haei_sara = new ArrayList<String>();
haei_sara.add("א.א");
haei_sara.add("א.ב");
haei_sara.add("א.ג");
haei_sara.add("א.ד");
haei_sara.add("ב.א");
haei_sara.add("ב.ב");
haei_sara.add("ב.ג");
// Adding child data
List<String> toldot = new ArrayList<String>();
toldot.add("א.א");
toldot.add("א.ב");
toldot.add("א.ג");
toldot.add("א.ד");
toldot.add("ב.א");
toldot.add("ב.ב");
toldot.add("ב.ג");
// Adding child data
List<String> vaece = new ArrayList<String>();
vaece.add("א.א");
vaece.add("א.ב");
vaece.add("א.ג");
vaece.add("א.ד");
vaece.add("ב.א");
vaece.add("ב.ב");
vaece.add("ב.ג");
// Adding child data
List<String> vaishlah = new ArrayList<String>();
vaishlah.add("א.א");
vaishlah.add("א.ב");
vaishlah.add("א.ג");
vaishlah.add("א.ד");
vaishlah.add("ב.א");
vaishlah.add("ב.ב");
vaishlah.add("ב.ג");
// Adding child data
List<String> vaeshev = new ArrayList<String>();
vaeshev.add("א.א");
vaeshev.add("א.ב");
vaeshev.add("א.ג");
vaeshev.add("א.ד");
vaeshev.add("ב.א");
vaeshev.add("ב.ב");
vaeshev.add("ב.ג");
// Adding child data
List<String> mikezz = new ArrayList<String>();
mikezz.add("א.א");
mikezz.add("א.ב");
mikezz.add("א.ג");
mikezz.add("א.ד");
mikezz.add("ב.א");
mikezz.add("ב.ב");
mikezz.add("ב.ג");
// Adding child data
List<String> vaigash = new ArrayList<String>();
vaigash.add("א.א");
vaigash.add("א.ב");
vaigash.add("א.ג");
vaigash.add("א.ד");
vaigash.add("ב.א");
vaigash.add("ב.ב");
vaigash.add("ב.ג");
// Adding child data
List<String> vaehi = new ArrayList<String>();
vaehi.add("א.א");
vaehi.add("א.ב");
vaehi.add("א.ג");
vaehi.add("א.ד");
vaehi.add("ב.א");
vaehi.add("ב.ב");
vaehi.add("ב.ג");
// Adding child data
List<String> vaire = new ArrayList<String>();
vaire.add("א.א");
vaire.add("א.ב");
vaire.add("א.ג");
vaire.add("א.ד");
vaire.add("ב.א");
vaire.add("ב.ב");
vaire.add("ב.ג");
List<String> bo = new ArrayList<String>();
bo.add("א.א");
bo.add("א.ב");
bo.add("א.ג");
bo.add("א.ד");
bo.add("ב.א");
bo.add("ב.ב");
bo.add("ב.ג");
List<String> beshalah = new ArrayList<String>();
beshalah.add("א.א");
beshalah.add("א.ב");
beshalah.add("א.ג");
beshalah.add("א.ד");
beshalah.add("ב.א");
beshalah.add("ב.ב");
beshalah.add("ב.ג");
List<String> itro = new ArrayList<String>();
itro.add("א.א");
itro.add("א.ב");
itro.add("א.ג");
itro.add("א.ד");
itro.add("ב.א");
itro.add("ב.ב");
itro.add("ב.ג");
List<String> mishpatim = new ArrayList<String>();
mishpatim.add("א.א");
mishpatim.add("א.ב");
mishpatim.add("א.ג");
mishpatim.add("א.ד");
mishpatim.add("ב.א");
mishpatim.add("ב.ב");
mishpatim.add("ב.ג");
List<String> truma = new ArrayList<String>();
truma.add("א.א");
truma.add("א.ב");
truma.add("א.ג");
truma.add("א.ד");
truma.add("ב.א");
truma.add("ב.ב");
truma.add("ב.ג");
List<String> tezzave = new ArrayList<String>();
tezzave.add("א.א");
tezzave.add("א.ב");
tezzave.add("א.ג");
tezzave.add("א.ד");
tezzave.add("ב.א");
tezzave.add("ב.ב");
tezzave.add("ב.ג");
List<String> p_zahor = new ArrayList<String>();
p_zahor.add("א.א");
p_zahor.add("א.ב");
p_zahor.add("א.ג");
p_zahor.add("א.ד");
p_zahor.add("ב.א");
p_zahor.add("ב.ב");
p_zahor.add("ב.ג");
List<String> ki_tisa = new ArrayList<String>();
ki_tisa.add("א.א");
ki_tisa.add("א.ב");
ki_tisa.add("א.ג");
ki_tisa.add("א.ד");
ki_tisa.add("ב.א");
ki_tisa.add("ב.ב");
ki_tisa.add("ב.ג");
List<String> vayakel = new ArrayList<String>();
vayakel.add("א.א");
vayakel.add("א.ב");
vayakel.add("א.ג");
vayakel.add("א.ד");
vayakel.add("ב.א");
vayakel.add("ב.ב");
vayakel.add("ב.ג");
List<String> m_ester = new ArrayList<String>();
m_ester.add("א.א");
m_ester.add("א.ב");
m_ester.add("א.ג");
m_ester.add("א.ד");
m_ester.add("ב.א");
m_ester.add("ב.ב");
m_ester.add("ב.ג");
List<String> _vaehi = new ArrayList<String>();
_vaehi.add("א.א");
_vaehi.add("א.ב");
_vaehi.add("א.ג");
_vaehi.add("א.ד");
_vaehi.add("ב.א");
_vaehi.add("ב.ב");
_vaehi.add("ב.ג");
List<String> _shmot = new ArrayList<String>();
_shmot.add("א.א");
_shmot.add("א.ב");
_shmot.add("א.ג");
_shmot.add("א.ד");
_shmot.add("ב.א");
_shmot.add("ב.ב");
_shmot.add("ב.ג");
List<String> _itro = new ArrayList<String>();
_itro.add("א.א");
_itro.add("א.ב");
_itro.add("א.ג");
_itro.add("א.ד");
_itro.add("ב.א");
_itro.add("ב.ב");
_itro.add("ב.ג");
List<String> _tezzave = new ArrayList<String>();
_tezzave.add("א.א");
_tezzave.add("א.ב");
_tezzave.add("א.ג");
_tezzave.add("א.ד");
_tezzave.add("ב.א");
_tezzave.add("ב.ב");
_tezzave.add("ב.ג");
List<String> _ki_tisa = new ArrayList<String>();
_ki_tisa.add("א.א");
_ki_tisa.add("א.ב");
_ki_tisa.add("א.ג");
_ki_tisa.add("א.ד");
_ki_tisa.add("ב.א");
_ki_tisa.add("ב.ב");
_ki_tisa.add("ב.ג");
List<String> _vayakel = new ArrayList<String>();
_vayakel.add("א.א");
_vayakel.add("א.ב");
_vayakel.add("א.ג");
_vayakel.add("א.ד");
_vayakel.add("ב.א");
_vayakel.add("ב.ב");
_vayakel.add("ב.ג");
List<String> _m_ester = new ArrayList<String>();
_m_ester.add("א.א");
_m_ester.add("א.ב");
_m_ester.add("א.ג");
_m_ester.add("א.ד");
_m_ester.add("ב.א");
_m_ester.add("ב.ב");
_m_ester.add("ב.ג");
listDataChild.put(listDataHeader.get(0), bereshit); // Header, Child data
listDataChild.put(listDataHeader.get(1), noah);
listDataChild.put(listDataHeader.get(2), leh_leha);
listDataChild.put(listDataHeader.get(3), vaira);
listDataChild.put(listDataHeader.get(4), haei_sara);
listDataChild.put(listDataHeader.get(5), toldot);
listDataChild.put(listDataHeader.get(6), vaece);
listDataChild.put(listDataHeader.get(7), vaishlah);
listDataChild.put(listDataHeader.get(8), vaeshev);
listDataChild.put(listDataHeader.get(9), mikezz);
listDataChild.put(listDataHeader.get(10), vaigash);
listDataChild.put(listDataHeader.get(11), vaehi);
listDataChild.put(listDataHeader.get(12), vaire);
listDataChild.put(listDataHeader.get(13), bo);
listDataChild.put(listDataHeader.get(14), beshalah);
listDataChild.put(listDataHeader.get(15), itro);
listDataChild.put(listDataHeader.get(16), mishpatim);
listDataChild.put(listDataHeader.get(17), truma);
listDataChild.put(listDataHeader.get(18), tezzave);
listDataChild.put(listDataHeader.get(19), p_zahor);
listDataChild.put(listDataHeader.get(20), ki_tisa);
listDataChild.put(listDataHeader.get(21), vayakel);
listDataChild.put(listDataHeader.get(22), m_ester);
listDataChild.put(listDataHeader.get(23), _vaehi);
listDataChild.put(listDataHeader.get(24), _shmot);
listDataChild.put(listDataHeader.get(25), _itro);
listDataChild.put(listDataHeader.get(26), _tezzave);
listDataChild.put(listDataHeader.get(27), _ki_tisa);
listDataChild.put(listDataHeader.get(28), _vayakel);
listDataChild.put(listDataHeader.get(29), _m_ester);
}
}[/syntax]
и вместо длиннющего куска тип add.(""); передать готовый String[] массивчик.
Ну примерно как здесь
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Resources res = getResources();
String[] name = res.getStringArray(R.array. admurim) ;// это передаю готовый массив .admurim
ListView lv = (ListView) findViewById(R.id.lv);
//вот передаю String[] в ArrayAdapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,name);
lv.setAdapter(adapter);
}
}
Re: Урок 45. Список-дерево ExpandableListView
Всё проблему решили на другом форуме
вот решение
вот решение
Код: Выделить всё
private void prepareListData() {
listDataHeader = new ArrayList<String>();
listDataChild = new HashMap<String, List<String>>();
Resources res = getResources();
String] names = res.getStringArray(R.array.parshiet);
for(String s: names)
-
- Сообщения: 11
- Зарегистрирован: 28 окт 2014, 14:43
Re: Урок 45. Список-дерево ExpandableListView
Доброй ночи. Подскажите пожалуйста. Переписал уже в трех реализациях код и каждый раз ошибка одна. во всех случаях - ошибка одна... Как с этим бороться?
Создаю адаптер:
упаковываю данные:
нахожу список и скармливаю ему адаптер:
В результате отображается список но при попытке его развернуть - приложение вылетает.
Лог:
Строка "(StocksAdapter.java:77)" указывает на код:
@Override
public int getChildrenCount(int groupPosition) {
return children.get(groupPosition).size();
}
Создаю адаптер:
Код: Выделить всё
public class StocksAdapter extends BaseExpandableListAdapter {
private Context context ;
private ArrayList<Map<String,Object>> groups;
private ArrayList<ArrayList<Map<String,Object>>> children;
public StocksAdapter ( Context context , ArrayList<Map<String, Object>> groups , ArrayList<ArrayList<Map<String, Object>>> children )
{
this.context = context;
this.groups = groups;
this.children = children;
}
@Override
public boolean areAllItemsEnabled()
{
return true;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return children.get(groupPosition).get(childPosition);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
// Return a child view. You can load your custom layout here.
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild,
View convertView, ViewGroup parent) {
Map mc = (HashMap) getChild(groupPosition, childPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.stocks_item, null);
}
TextView tvStockName = (TextView)convertView.findViewById(R.id.tvStockName);
tvStockName.setText((CharSequence) mc.get("name"));
TextView tvDescription = (TextView)convertView.findViewById(R.id.tvDescription);
if (tvDescription != null)
tvDescription.setText((CharSequence) mc.get("descr"));
ImageView ivLogo = (ImageView) convertView.findViewById(R.id.ivLogo);
Picasso.with(context).load(mc.get("logo").toString()).resize(75, 75).into(ivLogo);
// convertView.setFocusableInTouchMode(true);
return convertView;
}
@Override
public int getChildrenCount(int groupPosition) {
return children.get(groupPosition).size();
}
@Override
public Object getGroup(int groupPosition) {
return groups.get(groupPosition);
}
@Override
public int getGroupCount() {
return groups.size();
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
// Return a group view. You can load your custom layout here.
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
ViewGroup parent) {
Map mg= (HashMap) getGroup(groupPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(android.R.layout.simple_expandable_list_item_1, null);
}
TextView text1 = (TextView)convertView.findViewById(android.R.id.text1);
if (text1 != null)
text1.setText((CharSequence) mg.get("groupName"));
return convertView;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public boolean isChildSelectable(int arg0, int arg1) {
return true;
}
}
Код: Выделить всё
ArrayList<Map<String, Object>> groupData;
ArrayList<ArrayList<Map<String,Object>>> childData;
ArrayList<Map<String,Object>> childDataItem;
Map<String, Object> stocks_elem;
groupData = new ArrayList<Map<String, Object>>();
for (String group : groupStocks) {
stocks_elem = new HashMap<>();
stocks_elem.put("groupName", group);
groupData.add(stocks_elem);
}
childData = new ArrayList<ArrayList<Map<String, Object>>>();
for(int z=0; z<stocks_name.length();z++){
stocks_elem = new HashMap<String,Object>();
stocks_elem.put(STOCKS_NAME,sn[z]);
stocks_elem.put(STOCKS_LOGO,sl[z]);
stocks_elem.put(STOCKS_DESCR,sd[z]);
childDataItem.add(stocks_elem);
childData.add(childDataItem);
}
Код: Выделить всё
StocksAdapter adapter = new StocksAdapter(this,groupData,childData);
elvStocks = (ExpandableListView) findViewById(R.id.elvStocks);
elvStocks.setAdapter(adapter);
Лог:
Код: Выделить всё
12-08 00:28:11.260 327-327/? D/AndroidRuntime﹕ Shutting down VM
12-08 00:28:11.260 327-327/? W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x40015560)
12-08 00:28:11.290 327-327/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
at java.util.ArrayList.get(ArrayList.java:311)
at com.example.fikus.restlist_geo_frag_activity.StocksAdapter.getChildrenCount(StocksAdapter.java:77)
at android.widget.ExpandableListConnector.refreshExpGroupMetadataList(ExpandableListConnector.java:561)
at android.widget.ExpandableListConnector.expandGroup(ExpandableListConnector.java:682)
at android.widget.ExpandableListView.handleItemClick(ExpandableListView.java:567)
at android.widget.ExpandableListView.performItemClick(ExpandableListView.java:527)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:1812)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
@Override
public int getChildrenCount(int groupPosition) {
return children.get(groupPosition).size();
}
Re: Урок 45. Список-дерево ExpandableListView
Добр времени суток.
Нигде не нашел ни одного упоминания о сортировки записей в ExpandableListView
- у меня содержимое ExpandableListView - это папки.
И сортируются они по непонятному мне принципу.
А хотелось бы по понятному, по алфавиту или по дате создания
Help please!
Нигде не нашел ни одного упоминания о сортировки записей в ExpandableListView
- у меня содержимое ExpandableListView - это папки.
И сортируются они по непонятному мне принципу.
А хотелось бы по понятному, по алфавиту или по дате создания
Help please!
Re: Урок 45. Список-дерево ExpandableListView
http://www.mkyong.com/java/java-object- ... omparator/ компараторKant писал(а):Добр времени суток.
Нигде не нашел ни одного упоминания о сортировки записей в ExpandableListView
- у меня содержимое ExpandableListView - это папки.
И сортируются они по непонятному мне принципу.
А хотелось бы по понятному, по алфавиту или по дате создания
Help please!
http://stackoverflow.com/questions/9109 ... the-object
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: Урок 45. Список-дерево ExpandableListView
А круто) Это видимо в адапторе надо делать
и не проходит с таким массивом groupData = new ArrayList<Map<String, String>>();
и не проходит с таким массивом groupData = new ArrayList<Map<String, String>>();
- Вложения
-
- 31243.jpg (59.83 КБ) 14433 просмотра
-
- 123.jpg (65.53 КБ) 14434 просмотра
Последний раз редактировалось Kant 05 фев 2015, 17:20, всего редактировалось 1 раз.
Re: Урок 45. Список-дерево ExpandableListView
А может можно не в адапторе а в ExpandableListView как то сделать сортировку
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 45. Список-дерево ExpandableListView
Сортировка делается перед передачей массива в адаптер.
doter.ua уже дал ссылки на правильные ресурсы. Там много вариантов, но вам, скорее всего, подойдет использование интерфейса Comparator.
doter.ua уже дал ссылки на правильные ресурсы. Там много вариантов, но вам, скорее всего, подойдет использование интерфейса Comparator.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Урок 45. Список-дерево ExpandableListView
KamiSempai, а чего можно сделать - у меня на скринах, там им хочется что бы не строки были в массивах, а байты.
Можешь это как то прокомментировать)?
А то я не знаю как приспособиться)
строка создания массива такая :
groupData = new ArrayList<Map<String, String>>();
а скрины с ошибками выше
Можешь это как то прокомментировать)?
А то я не знаю как приспособиться)
строка создания массива такая :
groupData = new ArrayList<Map<String, String>>();
а скрины с ошибками выше
Последний раз редактировалось Kant 05 фев 2015, 17:46, всего редактировалось 1 раз.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 45. Список-дерево ExpandableListView
Вы не тот метод используете.
Нужно вот этот:
Collections.sort (List<T> list, Comparator<? super T> comparator)
И вот ссылка на русском, для понимания сортировок в java
http://echuprina.blogspot.ru/2012/02/co ... rator.html
Нужно вот этот:
Collections.sort (List<T> list, Comparator<? super T> comparator)
И вот ссылка на русском, для понимания сортировок в java
http://echuprina.blogspot.ru/2012/02/co ... rator.html
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Урок 45. Список-дерево ExpandableListView
Почитаю, спасибо!
Надеюсь получится.
Надеюсь получится.
Re: Урок 45. Список-дерево ExpandableListView
KamiSempai, это получается очень сложно и очень долго разбираться ( если вообще удастся)
А самое главное то что в итоге - будет не совсем то что мне нужно..
Я понимаю что правильно - это изменять последовательность строк expandableListView в адапторе.
Но если мне надо поменять местами скажем первую и последнюю строку или первую и пятую строку,
может есть возможность сделать это без адаптера ?
( это не совсем сортировка)
А самое главное то что в итоге - будет не совсем то что мне нужно..
Я понимаю что правильно - это изменять последовательность строк expandableListView в адапторе.
Но если мне надо поменять местами скажем первую и последнюю строку или первую и пятую строку,
может есть возможность сделать это без адаптера ?
( это не совсем сортировка)
Re: Урок 45. Список-дерево ExpandableListView
Можно ли менять местами строки в ExpandableListView ?
Re: Урок 45. Список-дерево ExpandableListView
Изменяй порядок в массиве, который передавал в адаптер при создании. Потом обнови адаптер с помощью notifydatasetchanged().Kant писал(а):Можно ли менять местами строки в ExpandableListView ?
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.