我正在制作一个应用程序,我希望用户在纵向模式下而不是横向模式下拥有其他视图。所以我制作了 1 个普通的 xml-fileen,然后制作了另一个我在制作 xml-file 时签名的用于横向模式的文件。因此,自动创建了一个名为 layout-land 的额外文件夹,新的 xml 文件(与旧文件同名)位于该文件夹中。
但是,每当我以横向模式启动我的应用程序时,它就会崩溃(xml 文件用于 MainActivity.java)?
我用于横向模式的 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/landscape1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="Houd uw telefoon rechtop en herstart de app voor correcte weergave"
android:textColor="#665252" />
</RelativeLayout>
日志输出:
06-03 19:22:14.664: D/AndroidRuntime(285): Shutting down VM
06-03 19:22:14.664: W/dalvikvm(285): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
06-03 19:22:14.684: E/AndroidRuntime(285): FATAL EXCEPTION: main
06-03 19:22:14.684: E/AndroidRuntime(285): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.rome/com.example.rome.MainActivity}:
java.lang.NullPointerException
06-03 19:22:14.684: E/AndroidRuntime(285): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
06-03 19:22:14.684: E/AndroidRuntime(285): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
06-03 19:22:14.684: E/AndroidRuntime(285): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
06-03 19:22:14.684: E/AndroidRuntime(285): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
06-03 19:22:14.684: E/AndroidRuntime(285): at android.os.Handler.dispatchMessage(Handler.java:99)
06-03 19:22:14.684: E/AndroidRuntime(285): at android.os.Looper.loop(Looper.java:123)
06-03 19:22:14.684: E/AndroidRuntime(285): at android.app.ActivityThread.main(ActivityThread.java:4627)
06-03 19:22:14.684: E/AndroidRuntime(285): at java.lang.reflect.Method.invokeNative(Native Method)
06-03 19:22:14.684: E/AndroidRuntime(285): at java.lang.reflect.Method.invoke(Method.java:521)
06-03 19:22:14.684: E/AndroidRuntime(285): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
06-03 19:22:14.684: E/AndroidRuntime(285): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
06-03 19:22:14.684: E/AndroidRuntime(285): at dalvik.system.NativeStart.main(Native Method)
06-03 19:22:14.684: E/AndroidRuntime(285): Caused by: java.lang.NullPointerException
06-03 19:22:14.684: E/AndroidRuntime(285): at com.example.rome.MainActivity.onCreate(MainActivity.java:21)
06-03 19:22:14.684: E/AndroidRuntime(285): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-03 19:22:14.684: E/AndroidRuntime(285): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
06-03 19:22:14.684: E/AndroidRuntime(285): ... 11 more
主要活动.java:
package com.example.rome;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.EditText;
import android.widget.Button;
import android.view.View;
import android.widget.Toast;
import android.content.Intent;
import android.view.MenuInflater;
import android.view.MenuItem;
public class MainActivity extends Activity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.imageButton1).setOnClickListener(this);
findViewById(R.id.imageButton2).setOnClickListener(this);
findViewById(R.id.imageButton3).setOnClickListener(this);
findViewById(R.id.imageButton4).setOnClickListener(this);
findViewById(R.id.imageButton5).setOnClickListener(this);
findViewById(R.id.imageButton6).setOnClickListener(this);
findViewById(R.id.imageButton7).setOnClickListener(this);
findViewById(R.id.imageButton8).setOnClickListener(this);
findViewById(R.id.imageButton9).setOnClickListener(this);
}
@Override
public void onClick(View v){
switch(v.getId()){
case R.id.imageButton1:
startActivity(new Intent(MainActivity.this, Metros.class));
break;
case R.id.imageButton2:
startActivity(new Intent(MainActivity.this, Programma.class));
break;
case R.id.imageButton8:
startActivity(new Intent(MainActivity.this, Italiaans.class));
break;
//-- more cases --
case R.id.imageButton9:
startActivity(new Intent(MainActivity.this, Telefoonnummers.class));
break;
case R.id.imageButton7:
startActivity(new Intent(MainActivity.this, Kaart.class));
break;
case R.id.imageButton5:
startActivity(new Intent(MainActivity.this, Restaurants.class));
break;
case R.id.imageButton3:
startActivity(new Intent(MainActivity.this, Bus.class));
break;
case R.id.imageButton4:
startActivity(new Intent(MainActivity.this, Winkelen.class));
break;
case R.id.imageButton6:
startActivity(new Intent(MainActivity.this, Syllabus.class));
break;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.Over:
startActivity(new Intent(this, Over.class));
return true;
case R.id.Hotels:
startActivity(new Intent(this, Hotels.class));
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
activity_main.xml(纵向模式版本):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0B0E15"
android:gravity="center_horizontal"
tools:context=".MainActivity" >
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:minHeight="100dp"
android:minWidth="100dp"
android:src="@drawable/metro2" />
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_toLeftOf="@+id/imageButton1"
android:minHeight="100dp"
android:minWidth="100dp"
android:src="@drawable/programma" />
<ImageButton
android:id="@+id/imageButton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/imageButton1"
android:layout_toRightOf="@+id/imageButton1"
android:minHeight="100dp"
android:minWidth="100dp"
android:src="@drawable/bus2" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="18dp"
android:height="20dp"
android:textColor="#FFFFFF"
android:width="175dp" />
<ImageButton
android:id="@+id/imageButton4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageButton1"
android:layout_toLeftOf="@+id/imageButton3"
android:minHeight="100dp"
android:minWidth="100dp"
android:src="@drawable/supermarkt2" />
<ImageButton
android:id="@+id/imageButton5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/imageButton2"
android:layout_below="@+id/imageButton2"
android:minHeight="100dp"
android:minWidth="100dp"
android:src="@drawable/restaurants2" />
<ImageButton
android:id="@+id/imageButton6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/imageButton4"
android:layout_toRightOf="@+id/imageButton4"
android:minHeight="100dp"
android:minWidth="100dp"
android:src="@drawable/syllabus2" />
<ImageButton
android:id="@+id/imageButton7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageButton4"
android:layout_toLeftOf="@+id/imageButton6"
android:minHeight="100dp"
android:minWidth="100dp"
android:src="@drawable/kaartrome2" />
<ImageButton
android:id="@+id/imageButton8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/imageButton6"
android:layout_alignTop="@+id/imageButton7"
android:minHeight="100dp"
android:minWidth="100dp"
android:src="@drawable/italiaans2" />
<ImageButton
android:id="@+id/imageButton9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/imageButton7"
android:layout_toLeftOf="@+id/imageButton7"
android:minHeight="100dp"
android:minWidth="100dp"
android:src="@drawable/telefoon2" />
<TextView
android:id="@+id/Streeptop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView1"
android:layout_alignBottom="@+id/textView1"
android:layout_centerHorizontal="true"
android:text="______________________________________________"
android:textColor="#FFFFFF" />
<TextView
android:id="@+id/Streep"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/Streeptop"
android:layout_below="@+id/imageButton7"
android:text="_______________________________"
android:textColor="#FFFFFF" />
</RelativeLayout>
你能帮我吗?
提前致谢, IDE