2012-06-07 4 views
0

Вот код. Это не дает никаких ошибок в консоли. Я сделал еще один класс активности test_me.java. Когда я нажимаю на параметр диалога, он дает ошибку «К сожалению, приложение перестало работать». Скажите, пожалуйста, в чем проблема.К сожалению приложение прекратило Android

public class TestActivity extends Activity { 

    Context context=this; 
    Intent testIntent; 
     Intent progIntent; 
     Intent settingIntent; 
     Intent resultIntent; public void onCreate(Bundle icicle) { 
      super.onCreate(icicle); 
      setContentView(R.layout.main); 
      Button b1 = (Button)findViewById(R.id.button1);   
      b1.setOnClickListener(new Button.OnClickListener(){ 

     @Override 
     public void onClick(View v) { 
        if(v.getId()==R.id.button1) 
        {     final CharSequence[] items = {"Test", "ProgMode", "Settings","Result"}; 
        AlertDialog.Builder builder = new AlertDialog.Builder(context) 
        .setTitle("Menu Options") 
        .setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int item) { 

          if(items[item]=="Test") 
          {testIntent = new Intent(TestActivity.this, test_me.class); 
           startActivity(testIntent); 
           } 
          else if(items[item]=="ProgMode") 
           {progIntent = new Intent(TestActivity.this,prog_mode.class); 
           startActivity(progIntent); 

            } 
          else if(items[item]=="Settings") 
           {settingIntent = new Intent(TestActivity.this,setting_mode.class); 
           startActivity(settingIntent); 
                   } 
          else if(items[item]=="Results") 
           { 
           resultIntent = new Intent(TestActivity.this,result_mode.class); 
           startActivity(resultIntent); 
                   } 

          Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); 
         } 
        }); 
         builder.setPositiveButton("Back", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
        dialog.cancel(); 

       } 
      }); 
} 

Вот Log

06-07 17:44:15.598: I/dalvikvm(654): threadid=3: reacting to signal 3 
06-07 17:44:15.978: I/dalvikvm(654): Wrote stack traces to '/data/anr/traces.txt' 
06-07 17:44:16.088: I/dalvikvm(654): threadid=3: reacting to signal 3 
06-07 17:44:16.148: I/dalvikvm(654): Wrote stack traces to '/data/anr/traces.txt' 
06-07 17:44:16.538: D/android.widget.GridLayout(654): vertical constraints: y3 - y0 > 637, y1 - y0 > 129, y2 - y1 > 135, y3 - y0 < 618 are inconsistent; permanently removing: y3 - y0 < 618. 
06-07 17:44:16.608: I/dalvikvm(654): threadid=3: reacting to signal 3 
06-07 17:44:16.638: I/dalvikvm(654): Wrote stack traces to '/data/anr/traces.txt' 
06-07 17:44:16.858: D/gralloc_goldfish(654): Emulator without GPU emulation detected. 
06-07 17:44:17.108: I/dalvikvm(654): threadid=3: reacting to signal 3 
06-07 17:44:17.139: I/dalvikvm(654): Wrote stack traces to '/data/anr/traces.txt' 
06-07 17:44:21.638: D/AndroidRuntime(654): Shutting down VM 
06-07 17:44:21.638: W/dalvikvm(654): threadid=1: thread exiting with uncaught exception (group=0x409c01f8) 
06-07 17:44:21.688: E/AndroidRuntime(654): FATAL EXCEPTION: main 
06-07 17:44:21.688: E/AndroidRuntime(654): android.content.ActivityNotFoundException: Unable to find explicit activity class {achira.test/achira.test.test_me}; have you declared this activity in your AndroidManifest.xml? 
06-07 17:44:21.688: E/AndroidRuntime(654): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1508) 
06-07 17:44:21.688: E/AndroidRuntime(654): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1384) 
06-07 17:44:21.688: E/AndroidRuntime(654): at android.app.Activity.startActivityForResult(Activity.java:3190) 
06-07 17:44:21.688: E/AndroidRuntime(654): at android.app.Activity.startActivity(Activity.java:3297) 
06-07 17:44:21.688: E/AndroidRuntime(654): at achira.test.AchActivity$1$1.onClick(AchActivity.java:84) 
06-07 17:44:21.688: E/AndroidRuntime(654): at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:924) 
06-07 17:44:21.688: E/AndroidRuntime(654): at android.widget.AdapterView.performItemClick(AdapterView.java:292) 
06-07 17:44:21.688: E/AndroidRuntime(654): at android.widget.AbsListView.performItemClick(AbsListView.java:1058) 
06-07 17:44:21.688: E/AndroidRuntime(654): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2514) 
06-07 17:44:21.688: E/AndroidRuntime(654): at android.widget.AbsListView$1.run(AbsListView.java:3168) 
06-07 17:44:21.688: E/AndroidRuntime(654): at android.os.Handler.handleCallback(Handler.java:605) 
06-07 17:44:21.688: E/AndroidRuntime(654): at android.os.Handler.dispatchMessage(Handler.java:92) 
06-07 17:44:21.688: E/AndroidRuntime(654): at android.os.Looper.loop(Looper.java:137) 
06-07 17:44:21.688: E/AndroidRuntime(654): at android.app.ActivityThread.main(ActivityThread.java:4424) 
06-07 17:44:21.688: E/AndroidRuntime(654): at java.lang.reflect.Method.invokeNative(Native Method) 
06-07 17:44:21.688: E/AndroidRuntime(654): at java.lang.reflect.Method.invoke(Method.java:511) 
06-07 17:44:21.688: E/AndroidRuntime(654): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
06-07 17:44:21.688: E/AndroidRuntime(654): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
06-07 17:44:21.688: E/AndroidRuntime(654): at dalvik.system.NativeStart.main(Native Method) 
06-07 17:44:22.349: I/dalvikvm(654): threadid=3: reacting to signal 3 
06-07 17:44:22.388: I/dalvikvm(654): Wrote stack traces to '/data/anr/traces.txt' 
06-07 17:44:24.118: I/Process(654): Sending signal. PID: 654 SIG: 9 
+0

Опубликовать свой логарифм ?? – GAMA

+2

* К сожалению, приложение перестало работать * это ваш журнал ошибок? – Krishnabhadra

ответ

3

я думаю, что это

Context context=TestActivity.this; 

должен войти внутрь OnCreate

также отпустить диалоговое

сбросить ваш ADB или перезагрузите эму LATOR вы получите ошибки в LogCat

ваш LogCat говорит

E/AndroidRuntime(654): android.content.ActivityNotFoundException: Unable to find explicit activity class {achira.test/achira.test.test_me}; have you declared this activity in your AndroidManifest.xml? 

, что означает, что вы не заявили о своей деятельности в манифесте

объявляют активности, как это внутри приложения тега

<activity 
      android:name=".test_me" 
      android:label="@string/app_name"> 
     </activity> 
+0

Я снова внес эти изменения в ту же ошибку. – dreamhigh

+0

это написано в вашем журнале cat? Вы объявили эту активность в своем AndroidManifest.xml? ' так что вы действительно заявили о своей деятельности, то есть о действиях, которые вы вызываете в файле манифеста? – Siddhesh

+0

Я создал действие вручную. Я не заявлял в манифесте. Как мне это сделать? – dreamhigh

0

У меня есть некоторый опыт подобной проблемы. Если вы создаете контекстную переменную, используйте ее где угодно. не пишите getApplicationContext() даже для тоста. И изменить переменный контекст, как это внутри OnCreate() {}

context = TestActivity.this; //pass activity context. 

контекст объявить как уровень переменного класса

0

Вы не отклоняя диалог после нажатия singleChoiceButton. Вызвать dialog.cancel() после каждого startActivity() заявление, которое находится внутри метода onClick.

0
Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); 

Просто комментарий или удалить это заявление ...

0

Сделать 2 Изменения в коде.

Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); 

Изменения в

Toast.makeText(TestActivity .this, items[item], Toast.LENGTH_SHORT).show(); 

И

AlertDialog.Builder builder = new AlertDialog.Builder(context) 

Изменения в

AlertDialog.Builder builder = new AlertDialog.Builder(TestActivity .this) 
0

Добавить класс test_me.java в манифесте, он должен работать потом.

Смежные вопросы