Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
ALSHA
0 / 0 / 0
Регистрация: 27.01.2013
Сообщений: 15
1

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

09.05.2013, 22:37. Просмотров 2650. Ответов 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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2013, 22:37
Ответы с готовыми решениями:

Подскажите план на прогу, как лучше написать и реализовать
Недавно посетила идея написать пока только для себя прогу с взаимодействием...

Как лучше сделать?
Всем доброго времени суток. Интересует Ваше мнение как лучше реализовать. ...

Ввод названия города - как лучше сделать
Здравствуйте. Делаю мобильное приложение для диплома. В нём есть поле для...

Ошибка при парсинге или как лучше сделать?
Ребята помогите пожалуйста. В папке assets у меня 7 txt. файлов.7 вопросов. ...

Подскажите как сделать в RecyclerView
Подскажите пожалуйста как сделать такой вывод в RecyclerView, чтобы записи...

3
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.05.2013, 22:57 2
при запуске второй активити вы можете поместить инфу об выборе в Intent
Java
1
intent.putExtra(name,value);
а во второй активити достать информацию
Java
1
getIntent.getExtra(name);
и судя по ней выводить те или иные данные.
1
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
12.05.2013, 22:37 3
Если речь идет о справочнике, то я бы посоветовал использовать SQLite. И при помощи обычного ListView можно организовать любую вложенность и интерфейс сделать понятным и красивым. Да и всю информацию проще хранить и получать из БД.
2
yourfanat
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 180
16.10.2014, 12:24 4
Вот тут расписано как создать справочник телефонов с встроенной БД - http://yourfanat.com/android/spravoc...ndroid-part-1/
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2014, 12:24

Подскажите как сделать разметку
Доброго, помогите с разметкой главного экрана как на картинке, нужно именно...

Подскажите как сделать Slide меню
День добрый коллеги и соклубники! Хочу для себя сделать лаунчер на планшет....

Подскажите как сделать подобное меню
Здравствуйте, подскажите как реализовать данное меню в toolbar.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru