如何禁用按钮几天

时间:2017-12-18 10:50:59

标签: java android

我需要帮助..

我有两个类Class1.java和Class2.java。在Class1中,一个按钮(PAY)可以转到Class2。 Class2是Billing Activity,它有一个按钮可以返回Class1。

当月结算结算时,按钮颜色应该更改。我希望从当前日期到下个月1日禁用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>

2 个答案:

答案 0 :(得分: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 ano

答案 1 :(得分: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);

希望它有所帮助。