3

タブホストで5つのアクティビティがあります。(つまり、MainActivity.java Home.java、NowReading.java、Favorites.java、およびProfile.java)。以下に示すように、メインアクティビティではタブホストをロードしています。

public class MainActivity extends TabActivity {
    TabHost tabHost;
    Context context = MainActivity.this;
    TextView txt_Login;
    View homeTabLayout;
    View reviewLayout;

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

        txt_Login = (TextView) findViewById(R.id.txt_Login);
        final Spinner spnrLanguage = (Spinner) findViewById(R.id.spnrLanguage);
        final Spinner spnrBrowseBy = (Spinner) findViewById(R.id.spnrBrowseBy);

        tabHost = getTabHost();

        // Android tab
        Intent intentHome = new Intent().setClass(this, Home.class);
        TabSpec tabSpecHome = tabHost
                .newTabSpec("Home")
                .setIndicator("Home",
                        getResources().getDrawable(R.drawable.home))
                .setContent(intentHome);

        tabHost.addTab(tabSpecHome);

        Intent intentNowReading = new Intent().setClass(this, NowReading.class);
        TabSpec tabSpecNowReading = tabHost
                .newTabSpec("Now Reading")

                .setIndicator("Now Reading",
                        getResources().getDrawable(R.drawable.now_reading))
                .setContent(intentNowReading);
        tabHost.addTab(tabSpecNowReading);

        Intent intentFavourite = new Intent().setClass(this, Favorites.class);
        TabSpec tabSpecFavourite = tabHost
                .newTabSpec("Favourite")
                .setIndicator("Favorites",
                        getResources().getDrawable(R.drawable.favorites))
                .setContent(intentFavourite);
        tabHost.addTab(tabSpecFavourite);

        Intent intentProfile = new Intent().setClass(this, Profile.class);
        TabSpec tabSpecProfile = tabHost
                .newTabSpec("Profile")
                .setIndicator("Profile",
                        getResources().getDrawable(R.drawable.profile))
                .setContent(intentProfile);
        tabHost.addTab(tabSpecProfile);
tabHost.setCurrentTabByTag("Home");

Mainactivity.javaim設定でHome.javaを現在のタブとして設定します。なので

tabHost.setCurrentTabByTag("Home");

これにより、setContentViewにレイアウトhome_activity.xmlがロードされます。

ここに画像の説明を入力してください

これがXMLコードです

    <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/frameLayout01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <RelativeLayout
        android:id="@+id/rel_HomeLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <GridView
            android:id="@+id/gridview"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:numColumns="auto_fit"
            android:stretchMode="columnWidth" >
        </GridView>
    </RelativeLayout>

    <ScrollView
        android:id="@+id/scroll_ReviewLayout"
        android:layout_width="fill_parent"
        android:layout_height="match_parent" >

        <RelativeLayout
            android:id="@+id/rel_ReviewLayout01"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <ImageView
                android:id="@+id/img_OverVuBookCoverPhoto"
                android:layout_width="130dp"
                android:layout_height="165dp"
                android:layout_margin="5dp"
                android:adjustViewBounds="true"
                android:background="@drawable/rounded_image_borders"
                android:paddingLeft="5dp"
                android:paddingRight="5dp"
                android:src="@drawable/book1" />

            <TextView
                android:id="@+id/txt_revwBookTitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignTop="@+id/img_OverVuBookCoverPhoto"
                android:layout_marginTop="10dp"
                android:layout_toRightOf="@+id/img_OverVuBookCoverPhoto"
                android:text="The Basic Doctrine Of Islam"
                android:textColor="@color/White"
                android:textSize="12sp" />

            <TextView
                android:id="@+id/txt_revwAutherName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/txt_revwBookTitle"
                android:layout_marginTop="2dp"
                android:layout_toRightOf="@+id/img_OverVuBookCoverPhoto"
                android:text="By: Andrew J Newman"
                android:textColor="@color/SkyBlue"
                android:textSize="11sp" />

            <TextView
                android:id="@+id/txt_PublishDate"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/txt_revwAutherName"
                android:layout_marginTop="2dp"
                android:layout_toRightOf="@+id/img_OverVuBookCoverPhoto"
                android:text="Published: July, 30 2007"
                android:textColor="@color/DarkGray"
                android:textSize="11sp" />

            <RatingBar
                android:id="@+id/ratingbar"
                style="?android:attr/ratingBarStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/txt_PublishDate"
                android:layout_marginBottom="6dp"
                android:layout_marginTop="6dp"
                android:layout_toRightOf="@+id/img_OverVuBookCoverPhoto"
                android:isIndicator="false"
                android:numStars="5"
                android:rating="5"
                android:stepSize="1" />

            <Button
                android:id="@+id/btnOpenBook"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBaseline="@+id/img_OverVuBookCoverPhoto"
                android:layout_below="@+id/ratingbar"
                android:layout_toRightOf="@+id/img_OverVuBookCoverPhoto"
                android:text="Open Book"
                android:textColor="@color/Black"
                android:textSize="13sp" />

            <ImageButton
                android:id="@+id/btnBack"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/btnOpenBook"
                android:layout_alignTop="@+id/btnOpenBook"
                android:layout_marginLeft="5dp"
                android:layout_toRightOf="@+id/btnOpenBook"
                android:src="@drawable/pic_btn_back"
                android:textColor="@color/Black"
                android:textSize="14sp" />

            <TextView
                android:id="@+id/txt_BookOverview"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/img_OverVuBookCoverPhoto"
                android:layout_below="@+id/img_OverVuBookCoverPhoto"
                android:layout_marginBottom="10dp"
                android:layout_marginTop="20dp"
                android:text="Book Overview"
                android:textColor="@color/White"
                android:textSize="13sp" />

            <TextView
                android:id="@+id/txt_BookOverviewDetails"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/img_OverVuBookCoverPhoto"
                android:layout_below="@+id/txt_BookOverview"
                android:lineSpacingExtra="4dp"
                android:lines="10"
                android:text="Lorem ipsum dolor sit amet, there was nothing that I can do she was dead, for this reasean I m gonna loose every thing consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." >
            </TextView>
        </RelativeLayout>
    </ScrollView>

</FrameLayout>

Home.javaのonCreateメソッドで、Framelayoutをinvisible / Gone(本の概要が含まれています)を次のように作成しました

  public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.home_activity);

        homeTabLayout = findViewById(R.id.rel_HomeLayout);
        reviewLayout = findViewById(R.id.scroll_ReviewLayout);
        reviewLayout.setVisibility(View.GONE);

これで、本をクリックすると、コードを使用して上記で説明したように、onCreatメソッドで以前に非表示にした/なくなったビューが表示されます。

gridView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int pos,
                    long arg3) {
                // TODO Auto-generated method stub

                Toast.makeText(context, BookTitle.get(pos), Toast.LENGTH_SHORT)
                        .show();
                reviewLayout.setVisibility(View.VISIBLE);

ここに画像の説明を入力してください

注:これは新しいアクティビティではなく、クリックイベントでVisibleをビュー(つまり、reviewLayout.setVisibility(View.VISIBLE);)にしただけであることに注意してください。

  • onBackPressed()メソッドでこのビューを非表示/終了にします。
  • MainActivity.javaまたはHome.javaファイルのどこでこのメソッドを呼び出す必要がありますか?
  • MainActivity.javaでこのメソッドを呼び出すと、nullPointerExceptionが発生します。
4

2 に答える 2