我正在製作一個應用程序,我希望用戶在縱向模式下具有其他視圖,而不是在橫向模式下。 所以我做了1個普通的xml-fileen,然後做了另一個我在製作xml文件時用於橫向模式的簽名。因此,automaticcaly創建了一個名爲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>
logcat的輸出:
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
Mainactivity.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>
你能幫我嗎?
由於提前, 井
你可以發佈logcat時,它崩潰? – codeMagic
你可以發佈崩潰的Logcat輸出嗎?澄清一下,您有兩個名爲「xml-file.xml」的XML文件,一個位於佈局文件夾中,另一個位於layout-land文件夾中?此外,您的RelativeLayout缺少開頭的「<」標籤,但我懷疑這是您的問題,可能是複製粘貼錯誤。 – MattDavis
我得到了兩個名爲activity_main.xml的文件開始標籤是複製粘貼錯誤是。我會給logcat現在: – Ide