2

私は最近 Android のコーディングを開始し、画面の明るさを変更するための小さなプログラムを作成したいと考えていました...まあ..それについてはすでにいくつかの質問があることを知っていますが、ここで提案されているすべてを試してみましたが、どうすれば問題を解決できるか本当にわかりません :)明るさを設定した後、画面を「更新」する必要があることを理解しました。そして、この時点で私の問題が始まります...私はある種のダミーアクティビティを作成し、メインアクティビティにもインテントを持っていますが、そのインテントはダミーアクティビティを開始しないようです...メインの関連部分は次のとおりですアクティビティ:

button1.setOnClickListener(new OnClickListener()
    {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Settings.System.putInt(getContentResolver(),
            Settings.System.SCREEN_BRIGHTNESS, 255);

            Intent in = new Intent(Test.this,DummyBrightnessActivity.class); //it is working...
            startActivity(in); //it is working...
        }

およびダミーコード:

public class DummyBrightnessActivity extends Activity{
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    this.finish();

}

}

manifest.xml:

    <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".Test"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="com.Test.DummyBrightnessActivity"
        android:taskAffinity="com.Test.Dummy"
        android:excludeFromRecents="true"
        android:theme="@style/EmptyActivity"></activity>
</application>

関連性があるかもしれませんが、styles.xml:

<resources>

<style name="EmptyActivity" parent="android:Theme.Dialog">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Toast</item>
    <item name="android:background">#00000000</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:colorForeground">#000</item>
    <item name="android:backgroundDimEnabled">false</item>
    <item name="android:windowIsFloating">true</item>
</style>


</resources>

ああ、ところで...エラーは発生しません...ダミーは起動しません(そう思うのは、android:excludeFromRecents="true"なしで実行すると、最近のアプリリストに表示されないからです.

誰かが私を助けてくれることを願っています...良い一日を

//編集: ええと... コードは適切に機能しているように見えます xD 再確認して、「finish()」の代わりにテキストを入力すると、アクティビティが適切に実行されます...しかし、終了が必要だと思いました: /代わりに画面を「リセット」する方法について何か提案はありますか? チュートリアルの1つを間違って理解したようです...

//EDIT2: うーん... 最初の 8 時間以内に自分の質問への回答を投稿することはできません:D だから、ここに投稿します:

助けとヒントをありがとう、しかし今私は自分自身のための解決策を見つけました:D this one: Refreshing the display from a widget? 「空のアクティビティを開始して WindowManager の更新を実行する」という部分は私にとってはうまくいっています。ここで尋ねる前にこれに出くわしましたが、当時はそれを機能させることができませんでした:Dとにかく、どうもありがとうございました;)これは、コーディングが難しいという例にすぎませんアプリ" ;)

4

2 に答える 2

0

新しいビューを起動して閉じるのではなく、ビューで invalidate() を呼び出すことを検討することもできます。

画面の明るさを変更しようとしたことがないため、このシナリオで機能するかどうかはわかりません。ただし、http: //developer.android.com/reference/android/view/View.html#invalidate () に従って、ビューで invalidate() を呼び出すと、onDraw() が呼び出されます。 .

于 2012-06-19T21:30:49.823 に答える
0

これはうまくいくはずだと思います。あるページから別のページに移動するときにこれを使用します。単純にクラスを識別してアクティビティを開始し、新しいアクティビティが実行する内容を実行します。

public void onClick(View v) {
    // (IN THIS EXAMPLE) IDENTIFIES WHAT IS BEING PRESSED 
    if(v.getId() == R.id.activity) {
        // STARTS THE OTHER ACTIVITY
        Intent i = new Intent(this,Activity2.class);
        this.startActivity(i);
    }

また、finish();アクティビティの初期化と終了が同時に行われるため、削除してください。コンテンツ ビュー ( setContentView(R.layout.main);) を設定して、開始したアクティビティが実際に目的のページに移動したかどうかを確認できるようにしてください。

編集:ボタンの押下が検出されないと言います。OnClickListener をアクティビティ android に直接実装してみてください。このようにインポートします。

public class MyApplication extends Activity implements OnClickListener {

また、ボタンが適切に初期化されていることを確認してください。これを削除してみてください: button1.setOnClickListener(new OnClickListener()、次にこれをコードに追加します。

button1 = (Button) findViewById(R.id.activity);
button1.setOnClickListener(this);
于 2012-06-19T21:32:56.280 に答える