проблема с вкладкой Android - PullRequest
       20

проблема с вкладкой Android

1 голос
/ 17 сентября 2011

в моем приложении для Android у меня есть 10 макетов и вкладка с 4 кнопками в нем.Для этого 4 кнопки у меня есть 4 разных макетов.В моем приложении я хочу разместить панель вкладок в нижней части приложения, и я хочу показать панель вкладок во всех 10 макетов.Поэтому я разработал макет, используя метод view.Мой макет выглядит следующим образом

    <?xml version="1.0" encoding="utf-8" ?> 
    <view xmlns:android="http://schemas.android.com/apk/res/android" class="com.sample.app.TabBar$iRelativeLayout" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">

<RelativeLayout android:id="@+id/TabLayout_One" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_above="@+id/Tabs">
  <TextView android:id="@+id/title" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textColor="#f5f5f5" android:text="Home Screen"/> 
</RelativeLayout>

<RelativeLayout android:id="@+id/TabLayout_two" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_above="@+id/Tabs">
  <TextView android:id="@+id/title" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textColor="#f5f5f5" android:text="Add Screen"/> 
</RelativeLayout>

<RelativeLayout android:id="@+id/TabLayout_three" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_above="@+id/Tabs">
  <TextView android:id="@+id/title" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textColor="#f5f5f5" android:text="Search Screen"/> 
</RelativeLayout>

<RelativeLayout android:id="@+id/TabLayout_four" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_above="@+id/Tabs">
  <TextView android:id="@+id/title" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textColor="#f5f5f5" android:text="Help Screen"/> 
</RelativeLayout>

<RelativeLayout android:id="@+id/TabLayout_five" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_above="@+id/Tabs">
  <TextView android:id="@+id/title" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textColor="#f5f5f5" android:text="SignIn Screen"/> 
</RelativeLayout>

<RelativeLayout android:id="@+id/TabLayout_six" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_above="@+id/Tabs">
  <TextView android:id="@+id/title" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textColor="#f5f5f5" android:text="signUp Screen"/> 
</RelativeLayout>

<RelativeLayout android:id="@+id/TabLayout_seven" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_above="@+id/Tabs">
  <TextView android:id="@+id/title" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textColor="#f5f5f5" android:text="Profile Screen"/> 
</RelativeLayout>

<RelativeLayout android:id="@+id/TabLayout_eight" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_above="@+id/Tabs">
  <TextView android:id="@+id/title" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textColor="#f5f5f5" android:text="Map Screen"/> 
</RelativeLayout>

<RelativeLayout android:id="@+id/TabLayout_Nine" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_above="@+id/Tabs">
  <TextView android:id="@+id/title" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textColor="#f5f5f5" android:text="ListView Screen"/> 
</RelativeLayout>

<RelativeLayout android:id="@+id/TabLayout_Ten" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_above="@+id/Tabs">
  <TextView android:id="@+id/title" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textColor="#f5f5f5" android:text="Home Screen"/> 
</RelativeLayout>

      <view class="com.resting.spot.TabBar$iTab" android:id="@+id/Tabs" android:layout_width="fill_parent" android:layout_height="50px" android:layout_alignParentBottom="true" /> 
      </view>

Выше мой макет, и в моей части кодирования я использовал для создания конкретного макета view.VISIBLE, а все остальные - view.GONE следующим образом

private static final int TAB_HOME = 1;
private static final int TAB_ADD  = 2;
private static final int TAB_SCH  = 3;
private static final int TAB_HELP = 4;

private iTab            mTabs;
private RelativeLayout  mTabLayout_One;
private RelativeLayout  mTabLayout_Two;
private RelativeLayout      mTabLayout_Three;
private RelativeLayout  mTabLayout_Four;    
private RelativeLayout  mTabLayout_Five;    
private RelativeLayout  mTabLayout_Six; 
private RelativeLayout  mTabLayout_Seven;   
private RelativeLayout  mTabLayout_Eight;   
private RelativeLayout  mTabLayout_Nine;    
private RelativeLayout  mTabLayout_ten; 

@Override
public void onCreate(Bundle savedInstanceState) 
{
  super.onCreate(savedInstanceState);
  setContentView(R.layout.tabbar); 

 mTabs = (iTab) this.findViewById( R.id.Tabs );
 mTabLayout_One=(RelativeLayout)findViewById(R.id.TabLayout_One);
mTabLayout_Two=(RelativeLayout)findViewById( R.id.TabLayout_two );
mTabLayout_Three = (RelativeLayout) this.findViewById( R.id.TabLayout_three );
mTabLayout_Four  = (RelativeLayout) this.findViewById( R.id.TabLayout_four );
mTabLayout_Five  = (RelativeLayout) this.findViewById( R.id.TabLayout_five );
mTabLayout_Six  = (RelativeLayout) this.findViewById( R.id.TabLayout_six);
mTabLayout_Seven  = (RelativeLayout) this.findViewById( R.id.TabLayout_seven);
mTabLayout_Eight  = (RelativeLayout) this.findViewById( R.id.TabLayout_eight);
mTabLayout_Nine  = (RelativeLayout) this.findViewById( R.id.TabLayout_nine);


mTabs.addTabMember( new TabMember( TAB_HOME, "", R.drawable.home ));
mTabs.addTabMember( new TabMember( TAB_ADD , "", R.drawable.add ) );
mTabs.addTabMember( new TabMember( TAB_SCH , "", R.drawable.search ) );
mTabs.addTabMember( new TabMember( TAB_HELP, "", R.drawable.help ) );

            mTabLayout_One.setVisibility( View.VISIBLE );
            mTabLayout_Two.setVisibility( View.GONE );
            mTabLayout_Three.setVisibility( View.GONE );
            mTabLayout_Four.setVisibility( View.GONE );                     mTabLayout_Five.setVisibility( View.GONE );
            mTabLayout_Six.setVisibility( View.GONE );
            mTabLayout_Seven.setVisibility( View.GONE );
            mTabLayout_Eight.setVisibility( View.GONE );
            mTabLayout_Nine.setVisibility( View.GONE );


            mTabs.setOnTabClickListener( new OnTabClickListener() 
            {
                public void onTabClick( int tabId )
                {
                    if( tabId == TAB_HOME )
                    {
                        mTabLayout_One.setVisibility( View.VISIBLE );
                        mTabLayout_Two.setVisibility( View.GONE );
                        mTabLayout_Three.setVisibility( View.GONE );
                        mTabLayout_Four.setVisibility( View.GONE );
mTabLayout_Five.setVisibility( View.GONE );
            mTabLayout_Six.setVisibility( View.GONE );
            mTabLayout_Seven.setVisibility( View.GONE );
            mTabLayout_Eight.setVisibility( View.GONE );
            mTabLayout_Nine.setVisibility( View.GONE );             
                    } 

                    else if( tabId == TAB_ADD )
                    {
                             mTabLayout_One.setVisibility( View.GONE );
                             mTabLayout_Two.setVisibility( View.VISIBLE );
                             mTabLayout_Three.setVisibility( View.GONE );
                             mTabLayout_Four.setVisibility( View.GONE );
mTabLayout_Five.setVisibility( View.GONE );
            mTabLayout_Six.setVisibility( View.GONE );
            mTabLayout_Seven.setVisibility( View.GONE );
            mTabLayout_Eight.setVisibility( View.GONE );
            mTabLayout_Nine.setVisibility( View.GONE );

                    }
                    else if( tabId == TAB_SCH )
                    {
                        mTabLayout_One.setVisibility( View.GONE );
                        mTabLayout_Two.setVisibility( View.GONE );
                        mTabLayout_Three.setVisibility( View.VISIBLE );
                        mTabLayout_Four.setVisibility( View.GONE );
mTabLayout_Five.setVisibility( View.GONE );
            mTabLayout_Six.setVisibility( View.GONE );
            mTabLayout_Seven.setVisibility( View.GONE );
            mTabLayout_Eight.setVisibility( View.GONE );
            mTabLayout_Nine.setVisibility( View.GONE );

                    }
                    else if( tabId == TAB_HELP )
                    {
                        mTabLayout_One.setVisibility( View.GONE );
                        mTabLayout_Two.setVisibility( View.GONE );
                        mTabLayout_Three.setVisibility( View.GONE );
                        mTabLayout_Four.setVisibility( View.VISIBLE );
mTabLayout_Five.setVisibility( View.GONE );
            mTabLayout_Six.setVisibility( View.GONE );
            mTabLayout_Seven.setVisibility( View.GONE );
            mTabLayout_Eight.setVisibility( View.GONE );
            mTabLayout_Nine.setVisibility( View.GONE );

                    }
                }
            }); 
        }
}

Теперь проблема в том, что для каждого Relativelayout у меня было около 4 кнопок и 10 полей редактирования.В моем приложении у меня есть только один класс активности.Должен ли я объявить все эти функции в одном классе, и я должен написать все функциональные возможности в одном классе.В таком случае моя строка кода превысила около 2000 строк, и если она где-нибудь рухнула, я сильно запутался.

Есть ли способ создать отдельный класс для всех относительных макетов, где я могу объявитьКнопки и их идентификаторы и все функции, такие как загрузка и загрузка данных на сервер

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

...