alert
и т.п., это отдельная проблема. Нужен именно MySQL, а не SQL т.к. будет мессенджер.
либо пишется для каждой ОС (винда, линукс, яблоко) отдельная реализация основанная на апи системы и потом через макросы делается чтобы например если винда то использовалась виндовая реализация и т.д.
либо как то может на ассемлере пишется...
вручную отрисовка кнопок и прочих элементов интерфейса попиксельно и т.д.
Потому что как тогда объяснить что в том же Qt на всех ОС внешний вид контролов одинаковый?
Если php подключен к Apache, как CGI-приложение
Java, это не сложная вещь после C#
treeView1.Items.Add("Group 1");
treeView1.Items[0].Add("1.1");
treeView1.Items[0].Add("1.2");
treeView1.Items.Add("Group 2");
treeView1.Items[1].Add("2.1");
treeView1.Items[1].Add("2.2");
elv1 = (ExpandableListView)
v.findViewById(R.id.SeedsByDateFragment_elvSeeds);
String groupFrom[] = new String[] { "groupName" };
int groupTo[] = new int[] { android.R.id.text1 };
String childFrom[] = new String[] { "monthName" };
int childTo[] = new int[] { android.R.id.text1 };
List<Map<String, String>> groupDataList
= new ArrayList<Map<String, String>>();
HashMap<String, String> map1 = new HashMap<String, String>();
map1.put("groupName", "Group 1");
groupDataList.add(map1);
HashMap<String, String> map2 = new HashMap<String, String>();
map2.put("groupName", "Group 2");
groupDataList.add(map2);
List<ArrayList<Map<String, String>>> сhildDataList
= new ArrayList<ArrayList<Map<String, String>>>();
ArrayList<Map<String, String>> сhildDataItemList1
= new ArrayList<Map<String, String>>();
HashMap<String, String> map3 = new HashMap<String, String>();
map3.put("monthName", "1.1");
сhildDataItemList1.add(map3);
HashMap<String, String> map4 = new HashMap<String, String>();
map4.put("monthName", "1.2");
сhildDataItemList1.add(map4);
сhildDataList.add(сhildDataItemList1);
ArrayList<Map<String, String>> сhildDataItemList2
= new ArrayList<Map<String, String>>();
HashMap<String, String> map5 = new HashMap<String, String>();
map5.put("monthName", "2.1");
сhildDataItemList2.add(map5);
HashMap<String, String> map6 = new HashMap<String, String>();
map6.put("monthName", "2.2");
сhildDataItemList2.add(map6);
сhildDataList.add(сhildDataItemList2);
SimpleExpandableListAdapter adapter
= new SimpleExpandableListAdapter(
this.getContext(), groupDataList,
android.R.layout.simple_expandable_list_item_1, groupFrom,
groupTo, сhildDataList, android.R.layout.simple_list_item_1,
childFrom, childTo);
elv1.setAdapter(adapter);
ну и на первый взгляд под него проще писать чем под яблучный телефон.
Отталкивает невероятная конкуренция на одно рабочее место как пчёлы на мёд
Вот отложил 600 баксов на Мак мини
чтоб программа можно было заливать и компилировать
Найти профессионалов вряд ли получится, потому что зарплаты им платить в соответствии с рынок просто нет возможности, то есть работать они будут в свободное время за возможную долю из прибыли конечного продукта.
Вопрос заключается в том, какой бекэнд нужно использовать? opengl/vulkan или что то родное для каждой ОС, например XCB(xlib)?
ArrayList<String>
, здесь Android ни причем, это просто Java (если не считать особенностей пути к SD-карте и необходимой permission), а затем этот ArrayList<String>
нужно привязать к ListView
с помощью ArrayAdapter
, такой пример по ListView и по другим темам есть у Александра Климова на сайте, да и не только у него.ExpandableListView
, и здесь модель данных получается гораздо запутаннее, тем не менее вот вам пример именно с Expandable, но еще раз, на Android все довольно запутанно и сложно, совсем не тот уровень что в Delphi, инвалидам без рук и головы - которых в Delphi каждый второй - тут не место, думаю вы это поймете, увидев этот код://код пишите в onCreate
expandableListView1 = (ExpandableListView)
findViewById(R.id.expandableListView1);
String groupFrom[] = new String[] { "groupName" };
int groupTo[] = new int[] { android.R.id.text1 };
String childFrom[] = new String[] { "monthName" };
int childTo[] = new int[] { android.R.id.text1 };
List<Map<String, String>> groupDataList
= new ArrayList<Map<String, String>>();
HashMap<String, String> map1 = new HashMap<String, String>();
map1.put("groupName", "Group 1");
groupDataList.add(map1);
HashMap<String, String> map2 = new HashMap<String, String>();
map2.put("groupName", "Group 2");
groupDataList.add(map2);
List<ArrayList<Map<String, String>>> сhildDataList
= new ArrayList<ArrayList<Map<String, String>>>();
ArrayList<Map<String, String>> сhildDataItemList1
= new ArrayList<Map<String, String>>();
HashMap<String, String> map3 = new HashMap<String, String>();
map3.put("monthName", "1.1");
сhildDataItemList1.add(map3);
HashMap<String, String> map4 = new HashMap<String, String>();
map4.put("monthName", "1.2");
сhildDataItemList1.add(map4);
сhildDataList.add(сhildDataItemList1);
ArrayList<Map<String, String>> сhildDataItemList2
= new ArrayList<Map<String, String>>();
HashMap<String, String> map5 = new HashMap<String, String>();
map5.put("monthName", "2.1");
сhildDataItemList2.add(map5);
HashMap<String, String> map6 = new HashMap<String, String>();
map6.put("monthName", "2.2");
сhildDataItemList2.add(map6);
сhildDataList.add(сhildDataItemList2);
SimpleExpandableListAdapter adapter
= new SimpleExpandableListAdapter(
this.getContext(), groupDataList,
android.R.layout.simple_expandable_list_item_1, groupFrom,
groupTo, сhildDataList, android.R.layout.simple_list_item_1,
childFrom, childTo);
expandableListView1.setAdapter(adapter);