开始一项新活动

时间:2010-08-18 02:39:17

标签: android android-activity

我对编程总的来说比较新,所以要温柔= |我正在尝试从显示一些文本输入,复选框和按钮的基本活动开始新活动。按下按钮时,我希望它切换到新活动。代码编译但是当我按下Android中的按钮时它只是崩溃。任何帮助将不胜感激。

以下是代码示例:

public class Something extends Activity implements OnClickListener
{

   @Override
   public void onCreate(Bundle savedInstanceState) 
   {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.login);

       Button login = (Button)findViewById(R.id.login);
       login.setOnClickListener(this);

   }

   @Override
   public void onClick(View v) 
   {

       startActivity(new Intent().setClass(Something.this, That.class));
   }
}

错误日志:

  

I / ActivityManager(240):开始活动:Intent {   cmp = jano.huerta.sfgc / .HOME} D / AndroidRuntime(13612):关机   VM W / dalvikvm(13612):threadid = 1:线程退出未捕获   异常(组= 0x4 0025a08)E / AndroidRuntime(13612):致命   EXCEPTION:main E / AndroidRuntime(13612):java.lang.RuntimeException:   无法启动活动公司   mponentInfo {jano.huerta.sfgc / jano.huerta.sfgc.HOME}:   android.content.ActivityNot FoundException:无法找到显式   活动班{jano.huerta.sfgc / jano.hu erta.sfgc.SUMMARY};有你   在AndroidManifest.xml中声明了这个活动?

     

E / AndroidRuntime(13612):at   android.app.ActivityThread.performLaunchActiv   ity(ActivityThread.java:2787)E / AndroidRuntime(13612):at   android.app.ActivityThread.handleLaunchActivi   ty(ActivityThread.java:2803)E / AndroidRuntime(13612):at   android.app.ActivityThread.access $ 2300(Activi tyThread.java:135)   E / AndroidRuntime(13612):at   android.app.ActivityThread $ H.handleMessage(Ac tivityThread.java:2136)   E / AndroidRuntime(13612):at   android.os.Handler.dispatchMessage(Handler.ja va:99)   E / AndroidRuntime(13612):at   android.os.Looper.loop(Looper.java:144)E / AndroidRuntime(13612):
  在android.app.ActivityThread.main(ActivityThrea d.java:4937)   E / AndroidRuntime(13612):at   java.lang.reflect.Method.invokeNative(Native Method)   E / AndroidRuntime(13612):at   java.lang.reflect.Method.invoke(Method.java:5 21)   E / AndroidRuntime(13612):at   com.android.internal.os.ZygoteInit $ MethodAndA   rgsCaller.run(ZygoteInit.java:868)E / AndroidRuntime(13612):at   com.android.internal.os.ZygoteInit.main(Zygot eInit.java:626)   E / AndroidRuntime(13612):at   dalvik.system.NativeStart.main(原生方法)

     

E / AndroidRuntime(13612):引起:   android.content.ActivityNotFoundException:无法找到显式   活动班{jano.huerta.sfgc / jano.huerta.sfgc.SUMMARY};有你   在AndroidManifest.xml中声明了此活动?   E / AndroidRuntime(13612):at   android.app.Instrumentation.checkStartActivit   yResult(Instrumentation.java:1563)E / AndroidRuntime(13612):at   android.app.ActivityThread.resolveActivityInf   o(ActivityThread.java:2597)E / AndroidRuntime(13612):at   android.app.LocalActivityManager.startActivit   y(LocalActivityManager.java:277)E / AndroidRuntime(13612):at   android.widget.TabHost $ IntentContentStrategy。   getContentView(TabHost.java:651)E / AndroidRuntime(13612):at   android.widget.TabHost.setCurrentTab(TabHost.java:323)   E / AndroidRuntime(13612):at   android.widget.TabHost.addTab(TabHost.java:21 3)   E / AndroidRuntime(13612):at   jano.huerta.sfgc.HOME.onCreate(HOME.java:23)E / AndroidRuntime(13612):   在android.app.Instrumentation.callActivityOnCre   ate(Instrumentation.java:1069)E / AndroidRuntime(13612):at   android.app.ActivityThread.performLaunchActiv   ity(ActivityThread.java:2751)E / AndroidRuntime(13612):... 11   更多W / ActivityManager(240):强制完成活动   jano.huerta.sfgc / .HOME W / ActivityManager(240):强制完成   活动jano.huerta.sfgc / .SFGC W / ActivityManager(240):活动   HistoryRecord暂停超时{466bbec0 jano .huerta.sfgc / .HOME}   D / dalvikvm(406):GC_EXPLICIT在90ms内释放了418个对象/ 26008个字节   I /处理(13612):发送信号。 PID:13612 SIG:9   I / ActivityManager(240):进程jano.huerta.sfgc(pid 13612)有   死了。 I / WindowManager(240):WIN DEATH:Window {466cb800   jano.huerta.sfgc / jano.huerta。 sfgc.SFGC暂停= true}   W / ActivityManager(240):活动销毁超时   HistoryRecord {46654450 ja no.huerta.sfgc / .SFGC}

2 个答案:

答案 0 :(得分:1)

这里最常见的错误是忘记在AndroidManifest.xml中注册'That'活动。你做到了吗?

此外,如果您从崩溃中粘贴堆栈跟踪,那么帮助您会更容易。您可以通过运行adb logcat来查看崩溃信息以及其他日志记录。

答案 1 :(得分:0)

永远不要忘记在Manifest.xml中添加<activity>标记。

所有活动必须必须添加到清单文件中。 Android Activity是必须注册的必要Android组件。

为什么?

该活动已由Android OS启动并销毁。因此,当您致电时,

Intent i = new Intent(this, TargetActivity.class);
startActicvity(i);

然后,操作系统在Manifest.xml文件中查找活动。如果找不到匹配的活动,则会出现以下错误:

  

android.content.ActivityNot FoundException:无法找到显式   活动

如何在清单文件中添加活动?

将此添加到清单文件中。

<activity android:name=".TargetActivity"/>

这是最基本的形式。您可以探索更多HERE