2011-09-02 50 views
0

我跟着這個教程(這是老了,但我無法找到任何其他人; http://learnandroid.blogspot.com/2008/01/opening-new-screen-in-android.html從不同的佈局打開新的佈局?

所以,我有這樣,當我點擊一些文字,就應該打開一個不同的佈局。

這是文本的XML代碼,我點擊打開它:

<TextView android:textAppearance="?android:attr/textAppearanceSmall" 
android:layout_height="wrap_content" 
android:text="Not a member? Sign up now!" 
android:layout_width="wrap_content" 
android:id="@+id/signupText" 
android:layout_gravity="center"></TextView> 
</LinearLayout> 

,這是Java編碼的佈局與它的可點擊的文本(第一個「屏」):

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

public class NetworkActivity extends Activity { 
public void onCreate(Bundle icicle) 
    { 
     super.onCreate(icicle); 
     setContentView(R.layout.main); 
     TextView click = (TextView) findViewById(R.id.signupText); 
     click.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View arg0) { 
      Intent i = new Intent(NetworkActivity.this, Signup.class); 
      startActivity(i); 
      } 
     }); 
    } 
} 

第二佈局的Java代碼:

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.TextView; 

public class Signup extends Activity 
{ 
public void onCreate(Bundle icicle) 
{ 
    super.onCreate(icicle); 
    setContentView(R.layout.signup); 
    TextView b = (TextView) findViewById(R.id.signupText); 
    b.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View arg0) { 
    setResult(RESULT_OK); 
    finish(); 
    } 
    }); 
} 
} 

沒有什麼特殊的XML代碼爲第二個佈局。 (應該有嗎?)

當我點擊模擬器中的文本時,出現意外關閉的錯誤消息。我該如何解決?

哦,我看到其他類似的問題,但他們沒有任何幫助。我對這一切都很陌生,所以如果我做了「錯誤」的事情,請不要生氣。我在這裏先向您的幫助表示感謝。 =]

+0

請發佈'logcat'的輸出,在那裏有一個堆棧跟蹤,詳細介紹Android強制關閉應用程序的原因。 –

回答

0

很可能你沒有在你的Android清單中註冊你的第二個活動。您需要爲應用中的每個人創建一個<activity>標記。在logcat中應該有一個錯誤,基本上說「無法找到活動(你是否在清單中聲明瞭它?)」

所有你需要做的解決這個問題,就是添加標籤到您的<application>標籤中:

<activity android:name=".Signup" android:label="@string/title_of_the_activity" /> 

<activity> tag documentation瞭解更多信息。

+0

我只有Hello字符串和app_name字符串。我應該有另一個? – Cole

+0

如果你喜歡,你可以創建一個新的。 「title_of_the_activity」只是一個例子。可以使用'app_name','hello'或其他任何東西。這只是顯示在頂部的標題。 – 2011-09-02 16:14:15

+0

好的,我在那裏,但它仍然在做。 :( – Cole

1

你用這種方法,它的工作對我來說(這裏使用的按鈕)

View.OnClickListener handler = new View.OnClickListener(){ 



     public void onClick(View v) { 
      switch (v.getId()) { 

       case R.id.button1: 
         setContentView(R.layout.layout1); 
         break; 
       case R.id.button2: 

        setContentView(R.layout.layout2); 
        break; 
       case R.id.button3: 

        setContentView(R.layout.layout3); 
        break; 
       case R.id.button4: 

        setContentView(R.layout.layout4); 
        break; 

        } 
     } 
    }; 
    findViewById(R.id.button1).setOnClickListener(handler); 
    findViewById(R.id.button2).setOnClickListener(handler); 
    findViewById(R.id.button3).setOnClickListener(handler); 
    findViewById(R.id.button4).setOnClickListener(handler); 


} 
0

,我們可以通過簡單的specifing 機器人做到這一點:點擊= 「真」 安卓的onClick = 「name_of_method」 在XML TextView文件。