0

我正在创建一个简单的 Android 应用程序来在静音和正常配置文件设置之间切换。我正在学习 android 开发,这个程序来自 Android Application Development for Dummies。这是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 = 假。

谁能解释缺少什么?

4

0 回答 0