2011-09-02 46 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文件。