2016-12-06 67 views
2

在我的程序中,我創建了從列表中隨機填充顏色的形狀。顏色在onCreate中設置。我不想讓它具有確定的顏色,但要多次更改顏色。如何'重新啓動'onCreate部分,以便再次分配顏色?Android - 從onCreate重新啓動零件

public class MainActivity extends Activity implements OnGestureListener 
{  
      private Paint paint = new Paint(); 


      @Override 
      protected void onCreate(Bundle savedInstanceState) 
      { 
       super.onCreate(savedInstanceState);      
       setContentView(R.layout.activity_main);       
       Canvas canvas = new Canvas(bg); 

       List<Integer> numbers = Arrays.asList(Color.RED, Color.BLUE, Color.GREEN, Color.YELLOW); 
       Collections.shuffle(numbers); 

      } 
} 
+1

當你想改變顏色?當活動重新啓動時,返回到前臺,單擊按鈕...? –

+0

看看這些問題:[question1](http://stackoverflow.com/questions/7150014/how-to-restart-the-oncreate-function),[question2](http://stackoverflow.com/questions/6134249/android-activity-restart),可能這是你正在尋找的。 –

+0

我有一個動畫部分,我在這裏離開了,當動畫完成後,顏色應該再次交換。但是如果你告訴我怎樣用一個按鈕來處理它,我將它處理成一個動畫 –

回答

1

這可能會幫助你的,只是把你的onResume或方法,你想從

onCreate(new Bundle()); 

例如在OnCreate重啓點擊這樣

btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      onCreate(new Bundle()); 
     } 
}); 
+0

你能給出一些關於怎麼包裝的信息嗎? –

+0

我編輯了我的答案 –

+0

謝謝,它的工作原理 –

0

一個按鈕,如果你試圖在從一個活動導航到另一個活動時嘗試改變顏色,那麼你可以嘗試包裝你的代碼來改變函數中的顏色,並在onResume()中調用該函數(其中一個生命週期被滿足一項活動)。每次您的活動加載時,都會調用onResume()。

2

這是使用方法,調用此方法

loadColors(); 
在OnCreate中

和其他地方ü希望

public class MainActivity extends Activity implements OnGestureListener 
{  
      private Paint paint = new Paint(); 


      @Override 
      protected void onCreate(Bundle savedInstanceState) 
      { 
       super.onCreate(savedInstanceState);      
       setContentView(R.layout.activity_main);       
       Canvas canvas = new Canvas(bg); 

       loadColors(); 

      } 



     private void loadColors(){ 
      List<Integer> numbers = Arrays.asList(Color.RED, Color.BLUE,      
Color.GREEN, Color.YELLOW); 
       Collections.shuffle(numbers); 
    } 
    } 
+0

我想嘗試一下你的代碼,但是我在onCreate中創建了一些引用'numbers'的形狀,所以我得到錯誤,如果我將它取出onCreate部分。那麼你的方式可能嗎? –

+0

是的嘗試,它會工作 –

+0

我試過了,但我得到這個錯誤 –