サイレント プロファイル設定と通常プロファイル設定を切り替えるシンプルな Android アプリケーションを作成しています。私はアンドロイド開発を学んでおり、このプログラムはダミーのAndroidアプリケーション開発から来ています。は次のactivity_main.xml
とおりです。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
>
<ImageView
android:id ="@+id/phone_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/phone_on"
/>
<Button
android:id="@+id/toggleButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/toggle_silent_mode"
/>
</LinearLayout>
のコードは次のMainActivity.java
とおりです。 package com.example.silentmodetoggle;
import android.graphics.drawable.Drawable;
import android.media.AudioManager;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity
{
private AudioManager mAudioManager;
private boolean mPhoneIsSilent;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAudioManager = (AudioManager)getSystemService(AUDIO_SERVICE);
checkIfPhoneIsSilent();
setButtonClickListener();
}
private void checkIfPhoneIsSilent()
{
int ringerMode = mAudioManager.getRingerMode();
if (ringerMode == AudioManager.RINGER_MODE_SILENT)
mPhoneIsSilent = true;
else
mPhoneIsSilent = false;
}
private void setButtonClickListener()
{
Button toggleButton = (Button)findViewById(R.id.toggleButton);
toggleButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View arg0)
{
if (mPhoneIsSilent)
{
mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
mPhoneIsSilent = false;
}
else
{
mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
mPhoneIsSilent = true;
}
toggleUi();
}
} );
}
private void toggleUi()
{
ImageView imageview = (ImageView)findViewById(R.id.phone_icon);
Drawable newPhoneImage;
if (mPhoneIsSilent)
newPhoneImage = getResources().getDrawable(R.drawable.phone_silent);
else
newPhoneImage = getResources().getDrawable(R.drawable.phone_on);
imageview.setImageDrawable(newPhoneImage);
}
protected void onResume()
{
super.onResume();
checkIfPhoneIsSilent();
toggleUi();
}
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
問題はtogglebutton
、アプリケーションを実行しても が表示されないことです。また、プロファイルをサイレントに変更してから通常に変更すると、アプリケーションに画像のみが表示されます (これは、次の場合の状態に属します)。
mPhoneIsSilent = false.
何が欠けているのか誰でも説明できますか?