2014-12-29 1 views
0

Я хотел бы реализовать приложение для хранения информации о содержимом морозильной камеры. Первый макет, который я разработал, - это 5 "пол", на любом этаже есть 12 кнопок и 12 TextView, но результат 12x5 = 60 и 60 textview.большой массив кнопки и текстового просмотра в одном экране

layout Я думаю, что этот макет должен иметь много ресурсов ... или нет? Код более прост в реализации, но производительность не плохая! (Я думаю).

это есть код для первой реализации:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:scrollbarStyle="insideOverlay" 
    android:scrollbars="vertical" > 

    <LinearLayout 
     android:id="@+id/LinearLayout0" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:background="@drawable/a9p_09_11_00943" > 

     <GridLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:columnCount="8" 
      android:orientation="horizontal" 
      android:rowCount="4" > 

      <!-- prima riga P1 R1 --> 

      <ImageButton 
       android:id="@+id/btnP1C1R1" 
       android:layout_column="1" 
       android:layout_gravity="left|top" 
       android:layout_row="0" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <ImageButton 
       android:id="@+id/btnP1C2R1" 
       android:layout_column="3" 
       android:layout_gravity="left|top" 
       android:layout_row="0" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add"/> 

      <ImageButton 
       android:id="@+id/btnP1C3R1" 
       android:layout_column="5" 
       android:layout_gravity="left|top" 
       android:layout_row="0" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <TextView 
       android:id="@+id/txtP1C1R1" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_column="2" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="0" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/txtP1C2R1" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_column="4" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="0" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/txtP1C3R1" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_column="6" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="0" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <!-- seconda riga P1 R2 --> 

      <ImageButton 
       android:id="@+id/btnP1C1R2" 
       android:layout_column="1" 
       android:layout_gravity="left|top" 
       android:layout_row="1" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <ImageButton 
       android:id="@+id/btnP1C2R2" 
       android:layout_column="3" 
       android:layout_gravity="left|top" 
       android:layout_row="1" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <ImageButton 
       android:id="@+id/btnP1C3R2" 
       android:layout_column="5" 
       android:layout_gravity="left|top" 
       android:layout_row="1" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <TextView 
       android:id="@+id/txtP1C1R2" 
       android:layout_column="2" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="1" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/txtP1C2R2" 
       android:layout_column="4" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="1" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/txtP1C3R2" 
       android:layout_column="6" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="1" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <!-- seconda riga P1 R3 --> 

      <ImageButton 
       android:id="@+id/btnP1C1R3" 
       android:layout_column="1" 
       android:layout_gravity="left|top" 
       android:layout_row="2" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <ImageButton 
       android:id="@+id/btnP1C2R3" 
       android:layout_column="3" 
       android:layout_gravity="left|top" 
       android:layout_row="2" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <ImageButton 
       android:id="@+id/btnP1C3R3" 
       android:layout_column="5" 
       android:layout_gravity="left|top" 
       android:layout_row="2" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <TextView 
       android:id="@+id/txtP1C1R3" 
       android:layout_column="2" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="2" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/txtP1C2R3" 
       android:layout_column="4" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="2" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/txtP1C3R3" 
       android:layout_column="6" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="2" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <!-- seconda riga P1 R4 --> 

      <ImageButton 
       android:id="@+id/btnP1C1R4" 
       android:layout_column="1" 
       android:layout_gravity="left|top" 
       android:layout_row="3" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <ImageButton 
       android:id="@+id/btnP1C2R4" 
       android:layout_column="3" 
       android:layout_gravity="left|top" 
       android:layout_row="3" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <ImageButton 
       android:id="@+id/btnP1C3R4" 
       android:layout_column="5" 
       android:layout_gravity="left|top" 
       android:layout_row="3" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <TextView 
       android:id="@+id/txtP1C1R4" 
       android:layout_column="2" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="3" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/txtP1C2R4" 
       android:layout_column="4" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="3" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/txtP1C3R4" 
       android:layout_column="6" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="3" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_column="0" 
       android:layout_row="0" 
       android:layout_gravity="left|center_vertical" 
       android:text="@string/store_4" /> 
      <TextView 
       android:id="@+id/textView2" 
       android:layout_column="0" 
       android:layout_row="1" 
       android:layout_gravity="left|center_vertical" 
       android:text="@string/store_3" /> 
      <TextView 
       android:id="@+id/textView3" 
       android:layout_column="0" 
       android:layout_row="2" 
       android:layout_gravity="left|center_vertical" 
       android:text="@string/store_2" /> 
      <TextView 
       android:id="@+id/textView4" 
       android:layout_column="0" 
       android:layout_row="3" 
       android:layout_gravity="left|center_vertical" 
       android:text="@string/store_1" /> 
     </GridLayout> 

    </LinearLayout> 

Вторая идея обычай ListView.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="@drawable/a9p_09_11_00943"> 

    <RelativeLayout 
     android:id="@+id/RelativeLayout0" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true"> 

     <ListView 
      android:id="@+id/listView" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_alignParentRight="true" > 
     </ListView> 

    </RelativeLayout> 

</RelativeLayout> 

Обычай деталь имеет внутри 12 и 12 днище TextView, как это:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:scrollbarStyle="insideOverlay" 
    android:scrollbars="vertical" > 

    <LinearLayout 
     android:id="@+id/LinearLayout0" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:background="@drawable/a9p_09_11_00943" > 

     <GridLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:columnCount="8" 
      android:orientation="horizontal" 
      android:rowCount="4" > 

      <!-- prima riga P1 R1 --> 

      <ImageButton 
       android:id="@+id/btnP1C1R1" 
       android:layout_column="1" 
       android:layout_gravity="left|top" 
       android:layout_row="0" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <ImageButton 
       android:id="@+id/btnP1C2R1" 
       android:layout_column="3" 
       android:layout_gravity="left|top" 
       android:layout_row="0" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add"/> 

      <ImageButton 
       android:id="@+id/btnP1C3R1" 
       android:layout_column="5" 
       android:layout_gravity="left|top" 
       android:layout_row="0" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <TextView 
       android:id="@+id/txtP1C1R1" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_column="2" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="0" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/txtP1C2R1" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_column="4" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="0" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/txtP1C3R1" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_column="6" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="0" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <!-- seconda riga P1 R2 --> 

      <ImageButton 
       android:id="@+id/btnP1C1R2" 
       android:layout_column="1" 
       android:layout_gravity="left|top" 
       android:layout_row="1" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <ImageButton 
       android:id="@+id/btnP1C2R2" 
       android:layout_column="3" 
       android:layout_gravity="left|top" 
       android:layout_row="1" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <ImageButton 
       android:id="@+id/btnP1C3R2" 
       android:layout_column="5" 
       android:layout_gravity="left|top" 
       android:layout_row="1" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <TextView 
       android:id="@+id/txtP1C1R2" 
       android:layout_column="2" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="1" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/txtP1C2R2" 
       android:layout_column="4" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="1" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/txtP1C3R2" 
       android:layout_column="6" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="1" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <!-- seconda riga P1 R3 --> 

      <ImageButton 
       android:id="@+id/btnP1C1R3" 
       android:layout_column="1" 
       android:layout_gravity="left|top" 
       android:layout_row="2" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <ImageButton 
       android:id="@+id/btnP1C2R3" 
       android:layout_column="3" 
       android:layout_gravity="left|top" 
       android:layout_row="2" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <ImageButton 
       android:id="@+id/btnP1C3R3" 
       android:layout_column="5" 
       android:layout_gravity="left|top" 
       android:layout_row="2" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <TextView 
       android:id="@+id/txtP1C1R3" 
       android:layout_column="2" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="2" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/txtP1C2R3" 
       android:layout_column="4" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="2" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/txtP1C3R3" 
       android:layout_column="6" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="2" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <!-- seconda riga P1 R4 --> 

      <ImageButton 
       android:id="@+id/btnP1C1R4" 
       android:layout_column="1" 
       android:layout_gravity="left|top" 
       android:layout_row="3" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <ImageButton 
       android:id="@+id/btnP1C2R4" 
       android:layout_column="3" 
       android:layout_gravity="left|top" 
       android:layout_row="3" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <ImageButton 
       android:id="@+id/btnP1C3R4" 
       android:layout_column="5" 
       android:layout_gravity="left|top" 
       android:layout_row="3" 
       android:background="@drawable/add_64" android:contentDescription="@string/store_add" /> 

      <TextView 
       android:id="@+id/txtP1C1R4" 
       android:layout_column="2" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="3" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/txtP1C2R4" 
       android:layout_column="4" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="3" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/txtP1C3R4" 
       android:layout_column="6" 
       android:layout_width="@dimen/size_txt_view" 
       android:layout_gravity="left|center_vertical" 
       android:layout_row="3" 
       android:text="@string/store_void" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_column="0" 
       android:layout_row="0" 
       android:layout_gravity="left|center_vertical" 
       android:text="@string/store_4" /> 
      <TextView 
       android:id="@+id/textView2" 
       android:layout_column="0" 
       android:layout_row="1" 
       android:layout_gravity="left|center_vertical" 
       android:text="@string/store_3" /> 
      <TextView 
       android:id="@+id/textView3" 
       android:layout_column="0" 
       android:layout_row="2" 
       android:layout_gravity="left|center_vertical" 
       android:text="@string/store_2" /> 
      <TextView 
       android:id="@+id/textView4" 
       android:layout_column="0" 
       android:layout_row="3" 
       android:layout_gravity="left|center_vertical" 
       android:text="@string/store_1" /> 
     </GridLayout> 

    </LinearLayout> 

</RelativeLayout> 

и у меня есть возможность добавить много пола, более, что 5! Но есть много сложностей для реализации кода: 1) когда пользователь нажимает на элемент (пол морозильника), как можно реализовать кнопку button.setOnClickListener для всех кнопок 12?

2) производительность getView внутри адаптера быстрая или медленная?

Еще одна идея - создать 5 фрагментов и внутри каждого фрагмента построить xml с 12 кнопками и 12 текстовыми изображениями. Возможно ли эта идея или сложнее? любая другая идея? спасибо.

EDIT

Я попробовал еще один способ, с помощью раздувания динамически в XML:

контейнер:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayout0" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:scrollbars="vertical" > 

</LinearLayout> 

код:

private static final int[] BUTTON_IDS_P1 = { 
      R.id.btnP1C1R1, 
      R.id.btnP1C1R2, 
      R.id.btnP1C1R3, 
      R.id.btnP1C1R4, 
      R.id.btnP1C2R1, 
      R.id.btnP1C2R2, 
      R.id.btnP1C2R3, 
      R.id.btnP1C2R4, 
      R.id.btnP1C3R1, 
      R.id.btnP1C3R2, 
      R.id.btnP1C3R3, 
      R.id.btnP1C3R4 
     }; 

     for(int i = 0; i < 5; i++){ 
         final LayoutInflater inflater = (LayoutInflater) appContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

         View child = inflater.inflate(R.layout.ripiano_frigo, null); 
         child.setId(i); 
         lLayout = (LinearLayout) rootView.findViewById(R.id.LinearLayout0); 
         lLayout.addView(child); 
    buttons = new ArrayList<ImageButton>(BUTTON_IDS_P1.length); 
        int idt=0; 
        for(int id : BUTTON_IDS_P1) { 
         ImageButton button = (ImageButton)rootView.findViewById(id); 
         //button.setOnClickListener(this); // maybe 
         MyTag myTag = new MyTag(idt, id,TEXTVIEW_IDS_P1[idt++], 0, 0); 
         button.setTag(myTag); 

         button.setOnClickListener(new View.OnClickListener() { 

          @Override 
          public void onClick(View v) { 
} 

все в порядке для первой группы кнопок (12), но как настроить другую? который является идентификатором второй группы кнопок?

ответ

1

создать макет с первого этажа и раздуть макет динамически и создать полы.

+0

Я думаю, чтобы понять ваш ответ, мне нужно создать первый набор кнопок (первый этаж) с кодом xml, а затем раздуть этот макет динамически? Как это сделать? на втором этаже (созданный динамически) можно ли нажать кнопку для кнопки? –

+0

создайте метод для раздувания макета и напишите onclick listner кнопкам и вызовите этот метод, сколько этажей вы хотите. – amar

Смежные вопросы