2011-02-05 3 views
0

мой первоначальный экран в основном из списка, который отображает список записей. Я создал меню, которое должно открыть новое окно для входа, но всегда закрывает его, когда я нажимаю на него. Ниже приведены мои коды:как переключиться на активность из списка, используя меню

Guestbook.java (ListActivity) 
    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle item selection 
     switch (item.getItemId()) { 
     case R.id.mnuNew: 
      //setContentView(R.layout.form); 
      Intent mIntent = new Intent(getApplicationContext(), Maintenance.class); 
      startActivityForResult(mIntent, 0); 

      //Toast.makeText(getApplicationContext(), "Test", Toast.LENGTH_SHORT).show(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
     } 
    } 

вот код для Maintenance.class

package com.android.guestbook; 

import android.app.Activity; 
import android.os.Bundle; 

public class Maintenance extends Activity { 

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

там что-то случилось с моим кодом?

вот информация о logcat.

02-06 07:02:29.617: INFO/ActivityManager(59): Starting activity: Intent { cmp=com.android.guestbook/.Maintenance } 
02-06 07:02:29.956: DEBUG/AndroidRuntime(276): Shutting down VM 
02-06 07:02:29.956: WARN/dalvikvm(276): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276): FATAL EXCEPTION: main 
02-06 07:02:30.107: ERROR/AndroidRuntime(276): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.guestbook/com.android.guestbook.Maintenance}: java.lang.RuntimeException: Binary XML file line #82: You must supply a layout_width attribute. 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.os.Handler.dispatchMessage(Handler.java:99) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.os.Looper.loop(Looper.java:123) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at java.lang.reflect.Method.invoke(Method.java:521) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at dalvik.system.NativeStart.main(Native Method) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276): Caused by: java.lang.RuntimeException: Binary XML file line #82: You must supply a layout_width attribute. 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:491) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:3592) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:3672) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.widget.LinearLayout$LayoutParams.<init>(LinearLayout.java:1395) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:1321) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:45) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:620) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.view.LayoutInflater.inflate(LayoutInflater.java:407) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.app.Activity.setContentView(Activity.java:1647) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at com.android.guestbook.Maintenance.onCreate(Maintenance.java:11) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
02-06 07:02:30.107: ERROR/AndroidRuntime(276):  ... 11 more 
02-06 07:02:30.216: WARN/ActivityManager(59): Force finishing activity com.android.guestbook/.Maintenance 
02-06 07:02:30.267: WARN/ActivityManager(59): Force finishing activity com.android.guestbook/.GuestBook 

вот мой form.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"> 
>  <LinearLayout   
>  android:layout_height="wrap_content" 
>  android:layout_width="fill_parent"> 
>   <TextView 
>   android:layout_width="fill_parent" 
>   android:layout_height="wrap_content" 
>   android:text="@string/name" /> 
>  </LinearLayout> 
>  <LinearLayout 
>  android:layout_height="wrap_content" 
>  android:layout_width="fill_parent"> 
>   <EditText 
>   android:inputType="textPersonName" 
>   android:layout_width="fill_parent" 
>   android:layout_height="wrap_content" 
>   android:id="@+id/name" 
>   android:hint="Enter your name here" /> 
>  </LinearLayout> 
>  <LinearLayout 
>  android:layout_height="wrap_content" 
>  android:layout_width="fill_parent"> 
>   <TextView 
>   android:layout_width="wrap_content" 
>   android:layout_height="wrap_content" 
>   android:text="@string/email" /> 
>  </LinearLayout> 
>  <LinearLayout 
>  android:layout_height="wrap_content" 
>  android:layout_width="fill_parent"> 
>   <EditText 
>   android:inputType="textEmailAddress" 
>   android:layout_width="fill_parent" 
>   android:layout_height="wrap_content" 
>   android:id="@+id/email" 
>   android:hint="Enter your email here" /> 
>  </LinearLayout> 
>  <LinearLayout 
>  android:layout_height="wrap_content" 
>  android:layout_width="fill_parent"> 
>   <TextView 
>   android:layout_width="wrap_content" 
>   android:layout_height="wrap_content" 
>   android:text="@string/message" /> 
>  </LinearLayout> 
>  <LinearLayout 
>  android:layout_height="wrap_content" 
>  android:layout_width="fill_parent"> 
>   <EditText 
>   android:inputType="textMultiLine" 
>   android:layout_width="fill_parent" 
>   android:layout_height="wrap_content" 
>   android:id="@+id/message" 
>   android:hint="Enter your message here"></EditText> 
>  </LinearLayout> 
>  <LinearLayout 
>  android:layout_height="wrap_content" 
>  android:layout_width="fill_parent"> 
>   <Button 
>   android:onClick="onClick" 
>   android:layout_weight="1" 
>   android:layout_width="fill_parent" 
>   android:layout_height="wrap_content" 
>   android:id="@+id/submit" 
>   android:text="@string/submit" /> 
>   <Button 
>   android:onClick="onClick" 
>   android:layout_weight="1" 
>   android:layout_width="fill_parent" 
>   android:layout_height="wrap_content" 
>   android:id="@+id/cancel" 
>   android:text="@string/cancel" /> 
>  </LinearLayout> 
>  <ListView 
>  android:id="@+id/list" /> </LinearLayout> 
+0

Просьба вывести логарифмический вывод ошибки –

+0

привет, как я могу получить вывод logcat? – adshocker

+0

Используйте «adb logcat», DDMS или перспективу DDMS в Eclipse, чтобы изучить LogCat и посмотреть на трассировку стека, связанную с вашей «силой закрытия». – CommonsWare

ответ

0

Вы объявили о своем обслуживании.class - Деятельности в вашем файле манифеста ?!

Вы должны поместить <activity> -tag в вашем AndroidManifest.xml между <application> -tag:

<application android:label="@string/app_name" android:icon="@drawable/icon" android:debuggable="true"> 
    <activity android:name=".activities.Guestbook" 
     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=".activities.Maintenance " 
     android:label="@string/app_name"> 
    </activity> 

</application> 
+0

привет, я добавил класс Maintenance в манифесте, но все еще получаю ту же самую сильную ошибку закрытия. – adshocker

0

благодаря всей вашей помощи я, наконец, понял, что это не так. проверяя logcat, он сказал некоторую проблему о layout_width моего макета xml. поэтому я проверил xml и заметил, что у меня есть список без свойства layout_width. как только я снял его, он начал работать.

еще раз спасибо.

0

Одна из ошибок заключается в том, что объявить следующие два параметра виджета ListView в 82 строке form.xml.

android:layout_height= 
android:layout_width= 
Смежные вопросы