Доброго дня.
Есть ViewPager с фрагментом из двух TextView. В каждой TextView будет больше 100 страниц, на каждой около 1 предложения, текст зависит от номера страницы. Прошу сильно не бить, если все это легко, но я немного запутался,и прошу пару советов:
1. Текст лучше закатать в файл string.xml? Или правильней отдельный файл закинуть?
2. Адаптер SimpleAdapter лучше использовать для вывода в две TextView или какой другой?
3. И самое главное : из адаптера данные куда передавать? в listView?
Заранее спасибо.
Урок 48. Используем SimpleAdapter.
-
- Сообщения: 9
- Зарегистрирован: 16 апр 2013, 14:04
Re: Урок 48. Используем SimpleAdapter.
http://developer.alexanderklimov.ru/and ... php#mipmapAABL писал(а):Жаловался на "drawable". Ошибка "no resource found that matches the given name (at 'src' with value '@drawable/ic_launcher')" в файле item.xml. И в mainactivity.java схожая ошибка на дроубл.
Погуглил и заменил в двух местах слово "drawable" на "mipmap" и всё заработало.
Насколько я понял, пример или работает только на eclipse, или для более старой версии Android Studio.
А что такое mipmap? Есть ли разница от drawable?
https://programmium.wordpress.com/2014/ ... droid-4-3/
Насколько я понял, начиная с Android 4.3 разработчикам рекомендуется не мучать систему, заставляя ресайзить одну иконку, а самостоятельно подготовить изображения разных размеров под разные экраны, а система уже выберет подходящее.
Хорошо бы обновить в уроках. Сам наткнулся на это в 54-м и, честно говоря, поначалу впал в ступор.
Re: Урок 48. Используем SimpleAdapter.
можно, только это наверное через пень колоду.Vlady писал(а):А как понять на какие элементы пользователь проставил крыжики?
для чек бокса регистрируем событие onClick
в нем получаем View (сам чекбокс), читаем его текст и значение isChecked и сохраняем в массив.
Re: Урок 48. Используем SimpleAdapter.
А почему не срабатывает событие onItemClickListener()?
Re: Урок 48. Используем SimpleAdapter.
Алилуя...
нашел ,почему не срабатывает onItemClickListener()
если есть чек бокс нужно у него сбросить следующие свойства:
android:focusable="false"
android:focusableInTouchMode="false"
нашел инфу у Климова, часа два угробил пытаясь понять, почему не срабатывает клик
ну а дальше имея ссылку на сам адаптер, текущую позицию обработать клик дело техники
только я так и не понял, в чем прикол самого чекбокса в таком исполнении
нашел ,почему не срабатывает onItemClickListener()
если есть чек бокс нужно у него сбросить следующие свойства:
android:focusable="false"
android:focusableInTouchMode="false"
нашел инфу у Климова, часа два угробил пытаясь понять, почему не срабатывает клик
ну а дальше имея ссылку на сам адаптер, текущую позицию обработать клик дело техники
только я так и не понял, в чем прикол самого чекбокса в таком исполнении
Re: Урок 48. Используем SimpleAdapter.
Код: Выделить всё
public class MainActivity extends AppCompatActivity {
// имена аттрибутов для мап
final String ATTRIBUTE_NAME_TEXT = "text";
final String ATTRIBUTE_NAME_TEXT1 = "text1";
final String ATTRIBUTE_NAME_CHECKED = "checked";
final String ATTRIBUTE_NAME_IMAGE = "image";
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// массивы данных
String[] texts = {"sometext 1", "sometext 2", "sometext 3", "sometext 4", "sometext 5" };
boolean[] checked = {true, false, true, false, false};
int[] img = {R.drawable.ic_launcher_foreground, R.drawable.ic_grade_black_48dp, R.drawable.ic_group_work_black_48dp, R.drawable.ic_help_black_48dp, R.drawable.ic_launcher_background};
String[] textChecked = {"Один", "Два", "Три", "Четыре", "Пять" };
// упаковка данных в понятную для адаптера структуру
ArrayList<Map<String, Object>> data = new ArrayList<Map<String, Object>> (texts.length);
Map<String, Object> m;
for (int i = 0; i < texts.length; i++) {
m = new HashMap<String, Object>();
m.put(ATTRIBUTE_NAME_TEXT, texts[i]);
m.put(ATTRIBUTE_NAME_TEXT1, textChecked[i]);
m.put(ATTRIBUTE_NAME_CHECKED, checked[i]);
m.put(ATTRIBUTE_NAME_IMAGE, img[i]);
data.add(m);
}
// массив имен аттрибутов, из которых будут читаться данные
String[] from = {ATTRIBUTE_NAME_TEXT, ATTRIBUTE_NAME_CHECKED, ATTRIBUTE_NAME_IMAGE, ATTRIBUTE_NAME_TEXT1};
// массив ID view компоненков, в которые будут вставляться данные
int[] to = {R.id.tvText, R.id.cbChecked, R.id.ivImg, R.id.cbChecked};
// создаем адаптер
SimpleAdapter simpleAdapter = new SimpleAdapter(this, data, R.layout.item, from, to);
// определяем список и присваиваем ему адаптер
listView = (ListView) findViewById(R.id.lvSimple);
listView.setAdapter(simpleAdapter);
}
}