在我的活动中,我显示了splash(splash.xml)屏幕5秒,然后我将内容视图更改为主要活动(activity_main)的实际布局。但是,当我尝试使用我的主要活动布局(activity_main)中的组件时,我得到空指针异常。
主要活动是
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.showOverflowMenu();
当我使用任何这些组件时,我得到空指针异常。
我的启动画面布局文件splash.xml
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);
}
}
和主要布局(activity_main.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>
答案 0 :(得分:0)
因为你的
@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);