2017-12-18 37 views
-1

我需要幫助..如何關閉某些天的按鈕

我有兩個類Class1.java和Class2.java。在Class1中,有一個按鈕(PAY)可以轉到Class2。 Class2是Billing Activity,它有一個按鈕可以返回到Class1。

噹噹月的賬單完成時,按鈕顏色應該改變。我想Class1的按鈕,從當前日期禁用於下月1日,使每個月的第一個..

我都試過,但沒有帶任何東西了......

這是我的代碼..

Class1.java

Intent i=new Intent(Class1.this,Class2.class);<br> 
startActivityForResult(i, 123); 


protected void onActivityResult(int requestCode, int resultCode, Intent data){   
    super.onActivityResult(requestCode, resultCode, data);<br> 
    if (requestCode == 123) { 
     pay.getBackground().setColorFilter(ContextCompat.getColor(this, 
       R.color.Green), PorterDuff.Mode.MULTIPLY); 
     pay.setEnabled(false); 
    } 
} 

Class2.java

Intent i1=new Intent(Class2.this,Class1.class);<br> 
setResult(123,i1);<br> 
+0

button.setEnabled(billing.isCompleted())...類似的東西 – Stultuske

+0

你現在得到的結果是什麼?執行'onActivityResult()'後,該按鈕仍然處於啓用狀態? –

+0

您需要保存結算已完成的月份,然後使用日曆獲取當前月份並查看結算是否已完成。然後禁用基於該按鈕的按鈕 – RobVoisey

回答

0

Class2.java

Intent intent = new Intent(); 
intent.putExtra("isBillCompleted", true); 
setResult(123, intent); 

Class1.java

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode ==123 && resultCode == RESULT_OK){ 
     boolean isCompleted = data.getBooleanExtra("isBillCompleted", false); 
     if (isCompleted){ 
      pay.setBackgroundColor(getResources().getColor(R.color.colorAccent)); 
      pay.setEnabled(false); 
     } 
    } 
} 

另外不要忘記添加@Override

+0

感謝您的迴應先生...這些工作,直到我停止了應用程序後,重新啓動應用程序按鈕使用prev按鈕顏色啓用.. –

0

如果你是新來的Android技術看Shared Preferences後。

獲取當前時間(以毫秒爲單位),並將其轉換爲天數減去之前的結算時間(如果差異超過30天),啓用該按鈕或將其保留爲禁用狀態。 計費完成後,將BILLED_ON重置爲當前日期。

long timeDifference = TimeUnit.MILLISECONDS.toDays(System.currentTimeMillis()) - sharedPreferences.getLong("TIMING", TimeUnit.MILLISECONDS.toDays(System.currentTimeMillis())); 
button.setEnabled(timeDifference > 30); 

希望它有幫助。