2012-06-07 100 views
14

當我點擊main.xml文件中的按鈕時,如何打開另一個佈局xml文件?如何在單擊按鈕時打開佈局(android)

所以如果我有一個按鈕sying的main.xml點擊這裏,我點擊它,它打開second.xml文件(佈局)。

+0

請告訴我們你第一次嘗試的東西。 –

+0

你必須使用兩個活動來切換兩個佈局,每個活動處理它自己的佈局,這是最好的方式。 –

回答

25

tutorial一步一步解釋你需要什麼。

首先創建你的兩個佈局:

main.xml中

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

    <TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textColor="#000000" 
    android:text="This is Activity 1" /> 

     <Button android:text="Next" 
     android:id="@+id/Button01" 
     android:layout_width="250px" 
      android:textSize="18px" 
     android:layout_height="55px"> 
    </Button>  

</LinearLayout> 

second.xml

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

    <TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textColor="#000000" 
    android:text="This is Activity 2" /> 

     <Button android:text="Previous" 
     android:id="@+id/Button02" 
     android:layout_width="250px" 
      android:textSize="18px" 
     android:layout_height="55px"> 
    </Button>  

</LinearLayout> 

其次你的活動添加到清單文件

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.rr" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".Activity1" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".Activity2"></activity> 
    </application> 
    <uses-sdk android:minSdkVersion="3" /> 
</manifest> 

Activity1.java

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 

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

     Button next = (Button) findViewById(R.id.Button01); 
     next.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Intent myIntent = new Intent(view.getContext(), Activity2.class); 
       startActivityForResult(myIntent, 0); 
      } 

     }); 
    } 
} 

要切換到活性2你必須:

  1. 獲取關於使用 (Button) findViewById(R.id.Button01)佈局與ID Button01一個參考按鈕。

  2. 爲該按鈕創建一個OnClick偵聽器。

  3. 而最重要的部分是創建一個「意圖」來啓動另一個 活動。這樣做的目的需要兩個參數:一個上下文和 ,我們要開始(Activity2.class)活動名稱

Activity2.java

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 

public class Activity2 extends Activity { 

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

     Button next = (Button) findViewById(R.id.Button02); 
     next.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Intent intent = new Intent(); 
       setResult(RESULT_OK, intent); 
       finish(); 
      } 

     }); 
    } 
2

-Inflate從XML
按鈕-add的onClickListener它
-set在onClick事件

Button btn = (Button) findViewById(R.id.myButton); 
btn.setOnClickListener(new OnClickListener(){ 

@Override 
public void onClick(View v) 
{ 
    MyActivity.setContentView(R.layout.newlayout); 
} 

}); 

像這樣的東西應該工作一個新的佈局......

+0

太棒了!這工作 –

+0

我該怎麼做 'public void onClick() { MyActivity.setContentView(R.layout.newlayout); }' in XML –

+0

這是不可能的,您可以做的最好的事情是使用「android:onClick」在XML中定義onClick監聽器。這個邏輯必須在java代碼中。 – Thkru

相關問題