我一直在使用这个Android Guide
到目前为止,这是一次愉快的经历,但我遇到了第一个问题。我复制了链接中源代码中的所有代码,并将其粘贴到项目文件夹中,替换了所有旧文件。
在开始理解我粘贴的内容之前,我认为首先运行代码以检查问题是合乎逻辑的。由于缺少R对象,项目将无法运行。导入后(Eclipse的问题解决方案),弹出更多错误。我试着在互联网和书中寻找答案,但无济于事。
由于我的软件是最新的,我怀疑这是软件方面的问题。由于代码可以在线获取,我认为问题会出现并修复。
提前感谢您的帮助。有关其他详细信息,请在评论中提问。
The code:
MainActivity.java
package com.dummies.android.silentmodetoggle;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.media.AudioManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity {
private AudioManager mAudioManager;
private boolean mPhoneIsSilent;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mAudioManager = (AudioManager)getSystemService(AUDIO_SERVICE);
checkIfPhoneIsSilent();
setButtonClickListener();
Log.d("SilentModeApp", "This is a test");
}
private void setButtonClickListener() {
Button toggleButton = (Button)findViewById(R.id.toggleButton);
toggleButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (mPhoneIsSilent) {
// Change back to normal mode
mAudioManager
.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
mPhoneIsSilent = false;
} else {
// Change to silent mode
mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
mPhoneIsSilent = true;
}
// Now toggle the UI again
toggleUi();
}
});
}
/**
* Checks to see if the phone is currently in silent mode.
*/
private void checkIfPhoneIsSilent() {
int ringerMode = mAudioManager.getRingerMode();
if (ringerMode == AudioManager.RINGER_MODE_SILENT) {
mPhoneIsSilent = true;
} else {
mPhoneIsSilent = false;
}
}
/**
* Toggles the UI images from silent
* to normal and vice versa.
*/
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);
}
@Override
protected void onResume() {
super.onResume();
checkIfPhoneIsSilent();
toggleUi();
};
}
答案 0 :(得分:2)
尝试清理您的项目,这将重建您的R文件。如果文件树中仍然没有R文件,那么您的xml布局文件中可能会出错。 Eclipse可能不会告诉您这一点,所以请保持警惕并检查/ res文件夹中的所有文件。
当发生这种情况时,从不>>导入R.
答案 1 :(得分:0)
您是否检查 /res/values/string.xml 中是否存在名为 action_settings 的变量,如果它不存在请创建一个然后使用项目清理 - >清理自动构建的makeure