0

我想通过单击按钮打开电池使用设置。代码是这样的:

Button btnusage = (Button)findViewById(R.id.batteryusage);
Button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        openOptionsBatt();
    }
});

和方法:

public openOptionsBatt(View v) {
    Intent intentBatteryUsage = new Intent(Intent.ACTION_POWER_USAGE_SUMMARY);        
    startActivity(intentBatteryUsage);
}

应用程序在创建时崩溃.. 为什么?

4

2 回答 2

0

看起来:

public openOptionsBatt(View v) { ... }

需要一个视图“v”,但是当您使用该方法本身时,您会忘记设置视图:

openOptionsBatt();

根据之前建议的更改以及此,尝试将您的代码更改为以下内容:

Button btnusage = (Button) findViewById(R.id.batteryusage);
btnusage.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        openOptionsBatt(v);
    }
});

希望这可以帮助。

于 2013-06-28T16:55:01.617 回答
0

尝试改变

Button btnusage = (Button)findViewById(R.id.batteryusage);
Button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        openOptionsBatt();
    }
});

Button btnusage = (Button)findViewById(R.id.batteryusage);
btnusage.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        openOptionsBatt();
    }
});

请注意,在您使用的第二个代码段中btnusage,不是Button. 您希望OnClickListener附加到您的实例而Button不是类Button本身。

此外,openOptionsBatt();当您的方法需要 1 个参数时,您使用传递 0 个参数进行调用public openOptionsBatt(View v)。我会更改public openOptionsBatt(View v)为采用 0 个参数。您还缺少void方法签名中的关键字。

public void openOptionsBatt()

于 2013-06-28T15:52:14.347 回答