2013-11-11 3 views
0

Предположим, у меня есть три действия A, B, C. Поток программы должен быть A-> B-> C-> B. У меня есть намерения стимулировать активность для выбора цвета (C). Проблема, которую я встречая, что активность C вызывается поПри переходе от деятельности 1-> 2 -> 3 -> 2. Возвращение в действие 1, а не в действие 2

startActivityForResult(i, 1); И я переопределении функции Lib

 @Override 
      protected void onActivityResult(int requestCode, int resultCode, Intent it) 
      { 
       super.onActivityResult(requestCode, resultCode, it); 
       //String t; 
       int r,g,b,a; 
       r=g=b=a=0; 
       System.out.println("onActivityResult " + it); 
       System.out.println("onActivityResult " + resultCode); 
       System.out.println("onActivityResult " + requestCode);//Intent it = getIntent(); 
       if(resultCode == RESULT_OK && requestCode==1) 
       { 
        System.out.println("ColorPickerActivity 3"); 
        r = it.getIntExtra("RED",0); 
        //it.getIntExtra("RED", r); 
        System.out.println("ColorPickerActivity R" + r); 
        g = it.getIntExtra("GREEN", 0); 
        System.out.println("ColorPickerActivity G" + g); 
        b = it.getIntExtra("BLUE", 0); 
        System.out.println("ColorPickerActivity B" + b); 
        a = it.getIntExtra("ALPHA", 0); 
        System.out.println("ColorPickerActivity A" + a); 
       } 
       System.out.println("ColorPickerActivity A" + graphIndex); 
       this.r = (float) (r/255); this.g = (float)g/255; this.b = (float)b/255; this.a = (float)a/255; 
       ChangeColor(this.r, this.g, this.b, this.a); 
      }` 

Но моя деятельность C завершается еще до его нажимается кнопка, как я Реализовано OnClickListener этой кнопке.

 showColor.setOnClickListener(new OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       System.out.println("Color R G B A " + r + g+ +b + a); 
       if(colorPickerObject != null) 
       { 
        System.out.println("Color R G B A " + r + g +b + a); 
         r = colorPickerObject.getRed(); 
         g = colorPickerObject.getGreen(); 
         b = colorPickerObject.getBlue(); 
         a = colorPickerObject.getAlpha(); 
         System.out.println("Color R G B A " + r + g +b + a); 
         setIntent(); 
       } 
      } 
     }); 

Функция setIntent() выглядит следующим образом

public void setIntent() 
     { 
      Intent i = new Intent(); 
      i.putExtra("RED", r); 
      i.putExtra("GREEN", g); 
      i.putExtra("BLUE", b); 
      i.putExtra("ALPHA", a); 
      setResult(RESULT_OK,i); 
      System.out.println("Intent" + i); 
      System.out.println("Intent R" + r); 
      System.out.println("Intent G" + g); 
      System.out.println("Intent B" + b); 
      finish(); 
     } 

Пожалуйста, помогите мне, почему это мероприятие C не возвращаясь к деятельности В. Скорее это закончится преждевременно давать Data утратившим // onActivityResult и возвращает в resultCode как -1 ЖУРНАЛОВ

11-11 10:57:00.535: I/System.out(2476): ColorPickerActivity 
11-11 10:57:00.535: I/System.out(2476): ColorPickerActivity 1Intent { cmp=com.example.sample3dchart/com.example.colorpicker.ColorPickerActivity } 
11-11 10:57:00.535: I/ActivityManager(391): START u0 {cmp=com.example.sample3dchart/com.example.colorpicker.ColorPickerActivity} from pid 2476 
11-11 10:57:00.550: I/System.out(2476): ColorPickerActivity 2 
11-11 10:57:00.565: I/System.out(2476): COLORPICKER Activity 
11-11 10:57:00.635: D/mali_winsys(2476): new_window_surface returns 0x3000 
11-11 10:57:00.800: I/ActivityManager(391): Displayed com.example.sample3dchart/com.example.colorpicker.ColorPickerActivity: +247ms 
11-11 10:57:05.205: I/System.out(2476): Color R G B A 0000 
11-11 10:57:05.205: I/System.out(2476): Color R G B A 0000 
11-11 10:57:05.205: I/System.out(2476): Color R G B A 3625536255 
11-11 10:57:05.205: I/System.out(2476): IntentIntent { (has extras) } 
11-11 10:57:05.205: I/System.out(2476): Intent R36 
11-11 10:57:05.205: I/System.out(2476): Intent G255 
11-11 10:57:05.205: I/System.out(2476): Intent B36 
11-11 10:57:05.275: D/dalvikvm(391): GC_FOR_ALLOC freed 885K, 25% free 17310K/22824K, paused 58ms, total 58ms 
11-11 10:57:05.285: I/System.out(2455): MAIN START CALLED 
11-11 10:57:05.300: D/mali_winsys(2455): new_window_surface returns 0x3000 
11-11 10:57:05.305: W/InputMethodManagerService(391): Starting input on non-focused client [email protected] (uid=10066 pid=2476) 
11-11 10:57:05.370: W/BufferQueue(2476): [unnamed-2476-0] cancelBuffer: BufferQueue has been abandoned! 
11-11 10:57:05.650: I/ActivityManager(391): No longer want com.android.packageinstaller (pid 2118): empty #17 
11-11 10:57:08.930: D/dalvikvm(1213): GC_CONCURRENT freed 405K, 5% free 9052K/9484K, paused 2ms+2ms, total 24ms 
11-11 10:57:08.945: D/Finsky(1213): [1] 5.onFinished: Installation state replication succeeded. 

ССЭЧ k эти журналы тоже. Does not Crash здесь, но возвращается к Activity A

ответ

0

Файл манифеста имел android:noHistory="true" Удалено, и мой код работает нормально.

0

setIntent() похоже, является именем некоторой встроенной функции. попробуйте изменить имя функции.

+0

Все еще не работает –

+0

Можете ли вы вставить журналы, когда активность C закрывается. Это рушится? вы видели журналы? Или введите свой код C полный код – Sushil

+0

plz проверить комментарии ниже –

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