Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.61
ALSHA
0 / 0 / 0
Регистрация: 27.01.2013
Сообщений: 15
#1

Подскажите, как лучше сделать (справочник организаций) - Android

09.05.2013, 22:37. Просмотров 2388. Ответов 3
Метки нет (Все метки)

Здравствуйте уважаемые!
В программировании для Android я новичок. Заинтересовал вопрос разработки справочника организаций.
Создал массив сфер деятельности (cat.xml)
XML
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="UTF-8"?>
<resources>
 <string-array name="cat">  
        <item>Машиностроение и металлообработка</item>
        <item>Черная и цветная металлургия</item>
        <item>Горнодобывающая промышленность</item>
</string-array>
</resources>
и для каждого значения массива сфер деятельности - массив организаций (subcat.xml)

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="UTF-8"?>       
       <resources>
       <string-array name="subcat_1">
       <item>ЗАО "1"</item>
       <item>ЗАО "2"</item>
       <item>ОАО "3"</item>
        </string-array>
        <string-array name="subcat_2">
       <item>"Вагоноремонтный завод "</item>
       <item>ЗАО "4"</item>
       <item>ЗАО "6"</item>
       <item>ЗАО "7" </item>
         </string-array>
        <string-array name="subcat_3">
       <item>ЗАО "8"</item>
       <item>ООО "9"</item>
       <item>ООО "10"</item>
         </string-array>
 </resources>
+++++++++++++++++++++++

Layout catalog.xml

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    android:gravity="center_horizontal" 
    android:orientation="vertical" 
    android:id="@+id/catalog" 
    android:background="@color/list_two" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout 
        android:gravity="center_vertical" 
        android:id="@+id/linearLayout1" 
        android:background="@color/background" 
        android:padding="2.0dip" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content">
        <ImageView android:id="@+id/title_back" 
            android:clickable="true" 
            android:layout_width="48.0dip" 
            android:layout_height="48.0dip" 
            android:src="@drawable/titel_back_button" 
            android:scaleType="fitXY" />
        <TextView 
            android:textSize="18.0dip" 
            android:textStyle="bold" 
            android:textColor="@color/black" 
            android:ellipsize="end" 
            android:gravity="center" 
            android:id="@+id/title_text" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="TextView" 
            android:maxLines="2" 
            android:lines="2" 
            android:layout_weight="1.0" />
 
        <ImageView
            android:id="@+id/title_home"
            android:layout_width="48.0dip"
            android:layout_height="48.0dip"
            android:clickable="true"
            android:scaleType="fitXY"
            android:src="@drawable/titel_home_button" />
 
    </LinearLayout>
     
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</ListView>
 
</LinearLayout>
Layout sub.xml

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    xmlns:app="http://schemas.android.com/tools">
 
    <LinearLayout
        android:id="@+id/LinearLayout3"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/background"
        android:gravity="center_vertical"
        android:orientation="horizontal" >
 
        <ImageView
            android:id="@+id/title_back1"
            android:layout_width="48.0dip"
            android:layout_height="48.0dip"
            android:clickable="true"
            android:scaleType="fitXY"
            android:src="@drawable/titel_back_button"
            app:ignore="ContentDescription" />
 
        <TextView
            android:id="@+id/title_text1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:ellipsize="end"
            android:gravity="center"
            android:lines="2"
            android:maxLines="2"
            android:text="СПРАВОЧНИК"
            android:textColor="@color/black"
            android:textSize="18.0dip"
            android:textStyle="bold"
            app:ignore="InefficientWeight,HardcodedText" />
 
        <ImageView
            android:id="@+id/title_home1"
            android:layout_width="48.0dip"
            android:layout_height="48.0dip"
            android:clickable="true"
            android:scaleType="fitXY"
            android:src="@drawable/titel_home_button"
            app:ignore="ContentDescription" />
    </LinearLayout>
 
    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
 
    </LinearLayout>
В основном Activity (CatalogActivity) загружаю массив сфер деятельности и по нажатию на элемент списка
вызываю другое Activity (SubActivity) в которое надо загружать массив организаций.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package com.sample.org;
import android.os.Bundle;
import android.app.ListActivity;
import android.content.Intent;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
 
public class CatalogActivity extends ListActivity {
    private ImageView mTitleBack;
      private ImageView mTitleHome;
      private TextView mTitleText;
      
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.catalog);
         String[] cat = getResources().getStringArray(R.array.cat);
        setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,cat));
    }
 
    protected void onListItemClick(ListView l,View v,int position,long id) 
 
    {
        super.onListItemClick(l, v, position, id);
        TextView textView = (TextView) v;
        String strText = textView.getText().toString(); // получаем текст нажатого элемента
        
        if(strText.equalsIgnoreCase("Машиностроение и металлообработка")) {
                
       // Запускаю активность, связанную с определенной сферой деятельности
            startActivity(new Intent(CatalogActivity.this, SubActivity.class));
        }
      }
    };
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.sample.org;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
 
 
public class SubActivity extends ListActivity
{
    private ImageView mTitleBack;
      private ImageView mTitleHome;
      private TextView mTitleText;
 
 
  protected void onCreate(Bundle paramBundle)
  {
    super.onCreate(paramBundle);
    setContentView(R.layout.sub);
 String[] subcat_1 = getResources().getStringArray(R.array.subcat_1);
    setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, this.subcat_1));
  }
 
  protected void onListItemClick(ListView paramListView, View paramView, int paramInt, long paramLong)
  {
  //  
//   
  }
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

И все бы хорошо, но возник вопрос. Как сделать так чтобы не создавать количество SubActivity, равное
количеству сфер деятельности, а подтягивать (по необходимости) в одно SubActivity тот массив организаций
который соответствует выбранной сфере деятельности.
Ну и потом пока не отработан вопрос о выводе информации об организации (то-ли хранить в текстовом файле,
то-ли в HTML с иконками....).

Пожалуйста, подскажите.
Заранее благодарен
Al_Sha
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2013, 22:37     Подскажите, как лучше сделать (справочник организаций)
Посмотрите здесь:

Как лучше реализовать компоновку? Android
Подскажите как сделать свою "форму" в xml, вверху ScrollView, внизу что-то другое Android
Android Подскажите на каком языке лучше писать
Как лучше организовать напоминалку? Android
Как лучше сделать? Android
Android Как лучше поступить?
Подскажите план на прогу, как лучше написать и реализовать Android
Android Подскажите как сделать подобное меню
Android Подскажите как сделать Slide меню
Ошибка при парсинге или как лучше сделать? Android
Подскажите как сделать кнопку для секундомера Android
Подскажите как сделать разметку для разных экранов Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.05.2013, 22:57     Подскажите, как лучше сделать (справочник организаций) #2
при запуске второй активити вы можете поместить инфу об выборе в Intent
Java
1
intent.putExtra(name,value);
а во второй активити достать информацию
Java
1
getIntent.getExtra(name);
и судя по ней выводить те или иные данные.
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
12.05.2013, 22:37     Подскажите, как лучше сделать (справочник организаций) #3
Если речь идет о справочнике, то я бы посоветовал использовать SQLite. И при помощи обычного ListView можно организовать любую вложенность и интерфейс сделать понятным и красивым. Да и всю информацию проще хранить и получать из БД.
yourfanat
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 177
16.10.2014, 12:24     Подскажите, как лучше сделать (справочник организаций) #4
Вот тут расписано как создать справочник телефонов с встроенной БД - http://yourfanat.com/android/spravoc...ndroid-part-1/
Yandex
Объявления
16.10.2014, 12:24     Подскажите, как лучше сделать (справочник организаций)
Ответ Создать тему
Опции темы

Текущее время: 08:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru