【问题标题】:Unable to use components of different layout in android main activity无法在android主活动中使用不同布局的组件
【发布时间】:2015-07-05 18:01:06
【问题描述】:

在我的活动中,我正在显示启动画面(splash.xml)5 秒,然后我将内容视图更改为我的主要活动(activity_main)的实际布局。但是当我尝试在我的主要活动布局(activity_main)中使用组件时,我得到了空指针异常。

主要活动是

public class MainActivity extends ActionBarActivity {
ProgressBar progressBar2;
EditText userName,password;
static String url;
JSONObject reader;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);
    new CountDownTimer(5000,1000){
        @Override
        public void onTick(long millisUntilFinished){}

        @Override
        public void onFinish(){
            //set the new Content of your activity
            MainActivity.this.setContentView(R.layout.activity_main);

        }
    }.start();
    progressBar2=(ProgressBar)findViewById(R.id.progressBar2);
    progressBar2.setVisibility(View.GONE);
    userName=(EditText)findViewById(R.id.userName);
    password=(EditText)findViewById(R.id.password);
}
}

当我使用这些组件中的任何一个时,都会出现空指针异常。

我的启动画面布局文件 splash.xml

            <RelativeLayout 
            android:layout_height="match_parent"
            android:background="@drawable/ic_launcher_web">
            <ProgressBar
                style="?android:attr/progressBarStyleLarge"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/progressBar"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="111dp"
                />
        </RelativeLayout>

和主布局(activity_main.xml 是)

            <LinearLayout 

            android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
            android:orientation="vertical"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="@dimen/activity_vertical_margin"
            android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
            android:weightSum="1">

            <EditText
                android:layout_width="match_parent"
                android:hint="Username"
                android:layout_height="wrap_content"
                android:id="@+id/userName"
                android:layout_alignParentTop="true"
                android:layout_alignParentStart="true" />

            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/password"
                android:hint="Password"/>

            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Remember me"
                android:id="@+id/checkBox"
                android:checked="false"
                />
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal">

                <Button
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Login"
                    android:id="@+id/button"
                    android:onClick="login"/>

                <Button
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Signup"
                    android:id="@+id/button3"
                    android:onClick="signUp"/>

            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="fill_parent"
                android:gravity="center">
            <ProgressBar
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/progressBar2"/>

            </LinearLayout>
        </LinearLayout>

【问题讨论】:

    标签: java android xml android-layout


    【解决方案1】:

    因为你的

        @Override
        public void onFinish(){
            //set the new Content of your activity
            MainActivity.this.setContentView(R.layout.activity_main);
    
        }
    

    将在 5 秒后执行。

    设置布局

            setContentView(R.layout.activity_main);
    

    progressBar2=(ProgressBar)findViewById(R.id.progressBar2); 之前

    【讨论】:

      猜你喜欢
      • 2016-10-15
      • 1970-01-01
      • 1970-01-01
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多