我在 Tabhost 中有 5 个活动。(即 MainActivity.java Home.java、NowReading.java、Favorites.java 和 Profile.java)。在主要活动中,我正在加载 tabhost,如下所示。
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.java 中将 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 设为不可见/消失(其中包含 Cliked 书的概述)
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);
注意:这不是新的活动,而是我刚刚在点击事件上制作了一个视图(即 reviewLayout.setVisibility(View.VISIBLE);)。
- 我想在 onBackPressed() 方法上使这个视图不可见/消失。
- 我应该在哪里调用这个方法,在 MainActivity.java 或 Home.java 文件中?
- 如果我在 MainActivity.java 中调用此方法,则会引发 nullPointerException。