Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何禁用按钮几天_Java_Android - Fatal编程技术网

Java 如何禁用按钮几天

Java 如何禁用按钮几天,java,android,Java,Android,我需要帮助 我有两个类Class1.java和Class2.java。在1班有一个按钮(付款)转到2班。Class2是计费活动,它有一个返回Class1的按钮。 当当月完成计费时,按钮颜色应更改。我希望从当前日期到下个月1日禁用Class1按钮,并在每个月1日启用 我试过了,但什么都没有 这是我的代码。 Class1.java Intent i=new Intent(Class1.this,Class2.class);<br> startActivityForResult(i, 12

我需要帮助

我有两个类Class1.java和Class2.java。在1班有一个按钮(付款)转到2班。Class2是计费活动,它有一个返回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);
    }
}
@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);
        }
    }
}
Intent i=新的Intent(Class1.this,Class2.class)
startActivityForResult(i,123); ActivityResult上受保护的void(int请求代码、int结果代码、意图数据){ super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==123){ pay.getBackground().setColorFilter(ContextCompat.getColor)(此, R.color.Green),PorterDuff.Mode.MULTIPLY); pay.setEnabled(false); } }
Class2.java

Intent i1=new Intent(Class2.this,Class1.class);<br>
setResult(123,i1);<br>
Intent i1=新的Intent(Class2.this,Class1.class)
setResult(123,i1)
Class2.java

Intent intent = new Intent();
intent.putExtra("isBillCompleted", true);
setResult(123, intent);
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);
    }
}
@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);
        }
    }
}

另外,如果您是android技术新手,请不要忘记添加
@Override
ano

获取以毫秒为单位的当前时间,并将其转换为天数减去上一次计费时间(如果差值超过30天),启用按钮或将其禁用。 计费完成后,将账单重置为当前日期

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

希望对您有所帮助。

button.setEnabled(billing.isCompleted())。。。像这样的事情你现在得到的结果是什么?执行
onActivityResult()
后,该按钮仍处于启用状态?您需要保存计费完成的月份,然后使用日历获取当前月份,查看计费是否完成。然后基于此禁用按钮建议您查看本文:您可以在共享首选项中保留两个变量,一个用于天数,另一个用于开始计算天数的日期,然后将首选项日期与当前日期匹配,如果差异与首选项日期匹配,则查找差异,然后启用按钮,否则不启用。感谢您的回复先生…在我重新启动应用程序后停止应用程序之前,这些功能都可以正常工作。按钮是使用prev按钮颜色启用的。。