2012-06-28 2 views
0

저는 android를 처음 사용합니다.에뮬레이터의 방향을 변경하는 동안 오류가 발생했습니다.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@android:color/white" 
    android:paddingTop="5dp" 
    android:orientation="vertical" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center"  
     android:layout_marginBottom="10dp" 
     android:src="@drawable/mazarslogo" /> 

    <ImageView 
     android:id="@+id/imageView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:src="@drawable/ic_launcher" /> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" 
     xmlns:android="http://schemas.android.com/apk/res/android" > 

     .... 

    </RelativeLayout> 

</LinearLayout> 

과 같은 main.xml 파일을 만들었습니다.이 파일은 내 res/layout/main.xml 폴더에 있습니다. 이제 layout-land라는 이름의 새 폴더를 만들고 main.xml 파일을 그 안에 넣습니다. 즉, 고해상도/레이아웃 토지/main.xml에, 그리고 여기

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center"  
     android:layout_marginBottom="10dp" 
     android:src="@drawable/mazarslogo" /> 

    <ImageView 
     android:id="@+id/imageView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:src="@drawable/ic_launcher" /> 

</LinearLayout> 

에 다음 코드를 넣어 내 수업

public class MainActivity extends Activity { 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     //---the two buttons are wired to the same event handler--- 
     Button btn_login = (Button)findViewById(R.id.btn_login); 
     btn_login.setOnClickListener(btnListener); 

     ..... 

    } //end of onCreate() 

} //end of class MainActivity 

그러나 지금 나는 프로젝트, 세로 모드에서 열려있는 프로젝트를 실행할 때 ,하지만 난 에뮬레이터의 방향을 변경하려면 Ctrl + F11을 누르면 다음 오류가 발생합니다.

enter image description here

여기에 내가 가로 모드에서이 오류가 발생하고 왜

enter image description here

그림 세로 모드는 무엇입니까? 내가 뭘 잘못하고있어?

감사

편집 -------------------------------------- -----------------------------

내 res/layout-land/main.xml 파일이 여기에

입니다.
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:background="@color/background" 
android:layout_height="fill_parent" 
android:layout_width="fill_parent" 
android:padding="1dip" 
android:orientation="horizontal" > > 

<LinearLayout 
    android:orientation="vertical" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:layout_gravity="center" 
    android:paddingLeft="20dip" 
    android:paddingRight="20dip" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center"  
     android:layout_marginBottom="10dp" 
     android:src="@drawable/mazarslogo" /> 

    <ImageView 
     android:id="@+id/imageView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_marginBottom="10dp" 
     android:src="@drawable/ic_launcher" /> 

    <TableLayout 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_gravity="center" 
     android:stretchColumns="*" > 

     <TableRow> 

      <Button 
       android:id="@+id/btn_login"     
       android:text="@string/login"     
       android:textSize="12sp" 
       android:textStyle="bold" /> 

      <Button 
       android:id="@+id/btn_aboutUs"       
       android:text="@string/aboutUs"     
       android:textSize="12sp" 
       android:textStyle="bold" /> 

     </TableRow> 

     <TableRow> 
      <Button 
       android:id="@+id/btn_contactUs"     
       android:text="@string/contactUs"    
       android:textSize="12sp" 
       android:textStyle="bold" /> 

      <Button 
       android:id="@+id/btn_exit"     
       android:text="@string/exit"   
       android:textSize="12sp" 
       android:textStyle="bold" /> 
     </TableRow> 
    </TableLayout>   
</LinearLayout> 

+0

당신이 XML 파일에서 버튼 ... –

+0

@Basit 게시하시기 바랍니다 u는 activtiy에 menifest에 다음과 같은 일을 추가 할 필요가있다 귀하의 응용 프로그램 logcat. –

+1

이'RelativeLayout' 레이아웃의'R.id.btn_login' 버튼이'NullPointerException'을 던질 수 있다면'port'에'RelativeLayout'을 잊었을 때'land' xml을 좋아할 것입니다. 또한 logcate를 붙여 넣을 수 있습니까? ? – idiottiger

답변

2

우선 모두 XML은 동일한 데이터 중 하나 이미지 뷰, 엉덩이로해야 염두에 두어야 거기에, 또는 레이아웃에 ID가도를 potrait 및 lancaspe 레이아웃 두 레이아웃 동일해야하고

다음
android:configChanges="keyboardHidden|orientation" 
+0

이 작품은 basit – Khan

관련 문제