sinat_34680565
安爬
采纳率50%
2016-04-27 15:48 阅读 2.1k

Android开发入门学习中遇到的问题

20

Android初学者,使用的书籍是《第一行代码Android》在书中2.2.5在活动中使用Toast这个部分出现了问题代码编写并未报错,虚拟机中按menu键没有出现菜单栏,请问这是什么原因该如何解决。拜托各位了。图片说明

图片说明问题没有解决,在虚拟机中点击Menu依旧没有出现菜单栏,请问还有哪些问题?拜托了

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

9条回答 默认 最新

  • devmiao devmiao 2016-04-27 15:51

    在学习Android开发的过程中遇到了不少的问题,所幸的是最终经过上网查询都得到了解决。现在将我在学习Android开发过程中遇到的一些问题及解决的方法整理如下。

    1.R.java不能实时更新

      问题描述:在res文件中新增的变量不能在R.java中实时的显示出来。

      解决方法:选择菜单栏的“Project”,勾选“Build Automatically”选项。

    2.LogCat视窗没有显示

      问题描述:在Eclipse的右下方没有显示LogCat视窗。

      解决方法:选择菜单栏的“Windows”,再选择“Show View”,最后再选择“LogCat”即可。

    3.编译时提示“android library projects cannot be launched”错误的解决方法

      问题描述:编译时提示“android library projects cannot be launched”错误

      解决方法:选择菜单栏的“Project”,再选择“Properties”,在弹出的窗口中选择“Android”,将is library选项前面的勾去掉。

    4.在xml中添加EditText控件后提示“This text field does not specify an inputType or a hint”错误

      问题描述:在xml中添加EditText控件,控件信息如下。

     <EditText
         android:id="@+id/editText"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" ></EditText>
    

      编译时,提示“This text field does not specify an inputType or a hint”错误。

      原因分析:控件中缺少android:hint以及android:inputType信息。android:hint用于设置EditText为空时显示的默认文字提示信息。android:inputType用于设置EditText的文本的类型,用于帮助输入法显示合适的键盘类型。

      解决方法:在控件中添加android:hint以及android:inputType信息,添加后的控件信息如下。

     <EditText
         android:id="@+id/editText"
         android:hint="0"
         android:inputType="number"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" ></EditText>
    

    5.警告信息“Hardcoded string "xxx", should use @string resource”的消除方法

      问题描述:在xml中添加Button控件,控件信息如下。

     <Button
         android:id="@+id/mButton_mc"
         android:text="mc"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" >           
     </Button>
    

      编译时,提示“Hardcoded string "mc", should use @string resource”警告。

      原因分析:在android:text中使用到了字符串mc,应该将该字符串定义在String.xml中,然后再通过调用String.xml中该字符串的资源名来使用该字符串资源。这样做的好处在于可以做到一改全改,并且在支持多语言时也是很有用处的。

      解决方法:在项目目录下的res-->values-->String.xml中添加字符串mc的信息如下。

      
      mc

      

      然后,再在使用该Button控件的xml中,通过调用该字符串的资源名来使用该字符串,如下。

      <Button
          android:id="@+id/mButton_mc"
          android:text="@string/mc"
          android:layout_width="match_parent"
          android:layout_height="wrap_content" >           
      </Button>
    

    6.警告信息“Nested weights are bad for performance”的消除方法

      原因分析:在布局进行嵌套使用时,父布局与子布局都使用了android:layout_weight,但不是必须使用时,便会出现如题所示的警告信息。

      解决方法:根据实际情况,去除子布局中非必须使用的android:layout_weight。

    7.启动模拟器时出现错误信息“Please ensure that adb is correctly located at:XXXXX”的解决方法

      现象:使用正确的源代码,在启动模拟器时出现如下错误信息“Please ensure that adb is correctly located at 'D:\AndroidSDK4.0\android-sdk-windows\platform-tools\adb.exe' and can be executed.”

      解决方法:将D:\AndroidSDK4.0\android-sdk-windows\platform-tools加入到系统环境变量PATH中。

    8.模拟器启动时一直显示信息“Waiting for HOME ('android.process.acore') to be launched...”的解决方法

      现象:模拟器启动时,等很久(5分钟以上)也启动不了,一直提示“Waiting for HOME ('android.process.acore') to be launched...”信息。

       解决方法:删除当前的模拟器,重新创建一个模拟器。在学习Android开发的过程中遇到了不少的问题,所幸的是最终经过上网查询都得到了解决。现在将我在学习Android开发过程中遇到的一些问题及解决的方法整理如下。

    1.R.java不能实时更新

      问题描述:在res文件中新增的变量不能在R.java中实时的显示出来。

      解决方法:选择菜单栏的“Project”,勾选“Build Automatically”选项。

    2.LogCat视窗没有显示

      问题描述:在Eclipse的右下方没有显示LogCat视窗。

      解决方法:选择菜单栏的“Windows”,再选择“Show View”,最后再选择“LogCat”即可。

    3.编译时提示“android library projects cannot be launched”错误的解决方法

      问题描述:编译时提示“android library projects cannot be launched”错误

      解决方法:选择菜单栏的“Project”,再选择“Properties”,在弹出的窗口中选择“Android”,将is library选项前面的勾去掉。

    4.在xml中添加EditText控件后提示“This text field does not specify an inputType or a hint”错误

      问题描述:在xml中添加EditText控件,控件信息如下。

     <EditText
         android:id="@+id/editText"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" ></EditText>
    

      编译时,提示“This text field does not specify an inputType or a hint”错误。

      原因分析:控件中缺少android:hint以及android:inputType信息。android:hint用于设置EditText为空时显示的默认文字提示信息。android:inputType用于设置EditText的文本的类型,用于帮助输入法显示合适的键盘类型。

      解决方法:在控件中添加android:hint以及android:inputType信息,添加后的控件信息如下。

     <EditText
         android:id="@+id/editText"
         android:hint="0"
         android:inputType="number"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" ></EditText>
    

    5.警告信息“Hardcoded string "xxx", should use @string resource”的消除方法

      问题描述:在xml中添加Button控件,控件信息如下。

     <Button
         android:id="@+id/mButton_mc"
         android:text="mc"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" >           
     </Button>
    

      编译时,提示“Hardcoded string "mc", should use @string resource”警告。

      原因分析:在android:text中使用到了字符串mc,应该将该字符串定义在String.xml中,然后再通过调用String.xml中该字符串的资源名来使用该字符串资源。这样做的好处在于可以做到一改全改,并且在支持多语言时也是很有用处的。

      解决方法:在项目目录下的res-->values-->String.xml中添加字符串mc的信息如下。

      
      mc

      

      然后,再在使用该Button控件的xml中,通过调用该字符串的资源名来使用该字符串,如下。

      <Button
          android:id="@+id/mButton_mc"
          android:text="@string/mc"
          android:layout_width="match_parent"
          android:layout_height="wrap_content" >           
      </Button>
    

    6.警告信息“Nested weights are bad for performance”的消除方法

      原因分析:在布局进行嵌套使用时,父布局与子布局都使用了android:layout_weight,但不是必须使用时,便会出现如题所示的警告信息。

      解决方法:根据实际情况,去除子布局中非必须使用的android:layout_weight。

    7.启动模拟器时出现错误信息“Please ensure that adb is correctly located at:XXXXX”的解决方法

      现象:使用正确的源代码,在启动模拟器时出现如下错误信息“Please ensure that adb is correctly located at 'D:\AndroidSDK4.0\android-sdk-windows\platform-tools\adb.exe' and can be executed.”

      解决方法:将D:\AndroidSDK4.0\android-sdk-windows\platform-tools加入到系统环境变量PATH中。

    8.模拟器启动时一直显示信息“Waiting for HOME ('android.process.acore') to be launched...”的解决方法

      现象:模拟器启动时,等很久(5分钟以上)也启动不了,一直提示“Waiting for HOME ('android.process.acore') to be launched...”信息。

       解决方法:删除当前的模拟器,重新创建一个模拟器。在学习Android开发的过程中遇到了不少的问题,所幸的是最终经过上网查询都得到了解决。现在将我在学习Android开发过程中遇到的一些问题及解决的方法整理如下。

    1.R.java不能实时更新

      问题描述:在res文件中新增的变量不能在R.java中实时的显示出来。

      解决方法:选择菜单栏的“Project”,勾选“Build Automatically”选项。

    2.LogCat视窗没有显示

      问题描述:在Eclipse的右下方没有显示LogCat视窗。

      解决方法:选择菜单栏的“Windows”,再选择“Show View”,最后再选择“LogCat”即可。

    3.编译时提示“android library projects cannot be launched”错误的解决方法

      问题描述:编译时提示“android library projects cannot be launched”错误

      解决方法:选择菜单栏的“Project”,再选择“Properties”,在弹出的窗口中选择“Android”,将is library选项前面的勾去掉。

    4.在xml中添加EditText控件后提示“This text field does not specify an inputType or a hint”错误

      问题描述:在xml中添加EditText控件,控件信息如下。

     <EditText
         android:id="@+id/editText"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" ></EditText>
    

      编译时,提示“This text field does not specify an inputType or a hint”错误。

      原因分析:控件中缺少android:hint以及android:inputType信息。android:hint用于设置EditText为空时显示的默认文字提示信息。android:inputType用于设置EditText的文本的类型,用于帮助输入法显示合适的键盘类型。

      解决方法:在控件中添加android:hint以及android:inputType信息,添加后的控件信息如下。

     <EditText
         android:id="@+id/editText"
         android:hint="0"
         android:inputType="number"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" ></EditText>
    

    5.警告信息“Hardcoded string "xxx", should use @string resource”的消除方法

      问题描述:在xml中添加Button控件,控件信息如下。

     <Button
         android:id="@+id/mButton_mc"
         android:text="mc"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" >           
     </Button>
    

      编译时,提示“Hardcoded string "mc", should use @string resource”警告。

      原因分析:在android:text中使用到了字符串mc,应该将该字符串定义在String.xml中,然后再通过调用String.xml中该字符串的资源名来使用该字符串资源。这样做的好处在于可以做到一改全改,并且在支持多语言时也是很有用处的。

      解决方法:在项目目录下的res-->values-->String.xml中添加字符串mc的信息如下。

      
      mc

      

      然后,再在使用该Button控件的xml中,通过调用该字符串的资源名来使用该字符串,如下。

      <Button
          android:id="@+id/mButton_mc"
          android:text="@string/mc"
          android:layout_width="match_parent"
          android:layout_height="wrap_content" >           
      </Button>
    

    6.警告信息“Nested weights are bad for performance”的消除方法

      原因分析:在布局进行嵌套使用时,父布局与子布局都使用了android:layout_weight,但不是必须使用时,便会出现如题所示的警告信息。

      解决方法:根据实际情况,去除子布局中非必须使用的android:layout_weight。

    7.启动模拟器时出现错误信息“Please ensure that adb is correctly located at:XXXXX”的解决方法

      现象:使用正确的源代码,在启动模拟器时出现如下错误信息“Please ensure that adb is correctly located at 'D:\AndroidSDK4.0\android-sdk-windows\platform-tools\adb.exe' and can be executed.”

      解决方法:将D:\AndroidSDK4.0\android-sdk-windows\platform-tools加入到系统环境变量PATH中。

    8.模拟器启动时一直显示信息“Waiting for HOME ('android.process.acore') to be launched...”的解决方法

      现象:模拟器启动时,等很久(5分钟以上)也启动不了,一直提示“Waiting for HOME ('android.process.acore') to be launched...”信息。

       解决方法:删除当前的模拟器,重新创建一个模拟器。

    点赞 1 评论 复制链接分享
  • devmiao devmiao 2016-04-27 15:52

    在学习Android开发的过程中遇到了不少的问题,所幸的是最终经过上网查询都得到了解决。现在将我在学习Android开发过程中遇到的一些问题及解决的方法整理如下。

    1.R.java不能实时更新

      问题描述:在res文件中新增的变量不能在R.java中实时的显示出来。

      解决方法:选择菜单栏的“Project”,勾选“Build Automatically”选项。

    2.LogCat视窗没有显示

      问题描述:在Eclipse的右下方没有显示LogCat视窗。

      解决方法:选择菜单栏的“Windows”,再选择“Show View”,最后再选择“LogCat”即可。

    3.编译时提示“android library projects cannot be launched”错误的解决方法

      问题描述:编译时提示“android library projects cannot be launched”错误

      解决方法:选择菜单栏的“Project”,再选择“Properties”,在弹出的窗口中选择“Android”,将is library选项前面的勾去掉。

    4.在xml中添加EditText控件后提示“This text field does not specify an inputType or a hint”错误

      问题描述:在xml中添加EditText控件,控件信息如下。

     <EditText
         android:id="@+id/editText"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" ></EditText>
    

      编译时,提示“This text field does not specify an inputType or a hint”错误。

      原因分析:控件中缺少android:hint以及android:inputType信息。android:hint用于设置EditText为空时显示的默认文字提示信息。android:inputType用于设置EditText的文本的类型,用于帮助输入法显示合适的键盘类型。

      解决方法:在控件中添加android:hint以及android:inputType信息,添加后的控件信息如下。

     <EditText
         android:id="@+id/editText"
         android:hint="0"
         android:inputType="number"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" ></EditText>
    

    5.警告信息“Hardcoded string "xxx", should use @string resource”的消除方法

      问题描述:在xml中添加Button控件,控件信息如下。

     <Button
         android:id="@+id/mButton_mc"
         android:text="mc"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" >           
     </Button>
    

      编译时,提示“Hardcoded string "mc", should use @string resource”警告。

      原因分析:在android:text中使用到了字符串mc,应该将该字符串定义在String.xml中,然后再通过调用String.xml中该字符串的资源名来使用该字符串资源。这样做的好处在于可以做到一改全改,并且在支持多语言时也是很有用处的。

      解决方法:在项目目录下的res-->values-->String.xml中添加字符串mc的信息如下。

      
      mc

      

      然后,再在使用该Button控件的xml中,通过调用该字符串的资源名来使用该字符串,如下。

      <Button
          android:id="@+id/mButton_mc"
          android:text="@string/mc"
          android:layout_width="match_parent"
          android:layout_height="wrap_content" >           
      </Button>
    

    6.警告信息“Nested weights are bad for performance”的消除方法

      原因分析:在布局进行嵌套使用时,父布局与子布局都使用了android:layout_weight,但不是必须使用时,便会出现如题所示的警告信息。

      解决方法:根据实际情况,去除子布局中非必须使用的android:layout_weight。

    7.启动模拟器时出现错误信息“Please ensure that adb is correctly located at:XXXXX”的解决方法

      现象:使用正确的源代码,在启动模拟器时出现如下错误信息“Please ensure that adb is correctly located at 'D:\AndroidSDK4.0\android-sdk-windows\platform-tools\adb.exe' and can be executed.”

      解决方法:将D:\AndroidSDK4.0\android-sdk-windows\platform-tools加入到系统环境变量PATH中。

    8.模拟器启动时一直显示信息“Waiting for HOME ('android.process.acore') to be launched...”的解决方法

      现象:模拟器启动时,等很久(5分钟以上)也启动不了,一直提示“Waiting for HOME ('android.process.acore') to be launched...”信息。

       解决方法:删除当前的模拟器,重新创建一个模拟器。

    点赞 1 评论 复制链接分享
  • qq_21413973 就是九号您 2016-04-27 18:45

    你没有覆盖那两个方法,上面还有一个over

    点赞 评论 复制链接分享
  • crazy1235 月盡天明 2016-04-28 01:49
    @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            return super.onCreateOptionsMenu(menu);
        }
    
    

    你这个方法写错了。应该是有参数的。

    点赞 评论 复制链接分享
  • u013147734 渐行渐远是否还有一种坚持留在心间 2016-04-28 03:11

    上面两位bingo,而你自创的onCreateOptionsMenu方法是不会被调用的

    点赞 评论 复制链接分享
  • donggua3694857 GrayHJX 2016-04-28 04:40

    你要加上这个@Override,不然你自己写的这个方法是不会被调用的

    点赞 评论 复制链接分享
  • dongfeng9ge 东风玖哥 2016-04-30 07:29

    请问你用的手机是什么型号的?小米的MENU被重写了

    点赞 评论 复制链接分享
  • u013147734 渐行渐远是否还有一种坚持留在心间 2016-05-06 09:00

    加什么@Override。根本不是这种问题,@Override只是起个提示作用,如果方法名字参数正确根本不需要@Override。
    名字怕写错,最好是这样,打onCre,然后alt+/弹出提示,从里面选择重写的方法.
    重写了方法的话,你再把自动生成的@Override去掉也可以.

    你去看看main.xml文件中有几个item,是不是R.menu.main对应的文件里面没实际选项。
    再不行试下带菜单键的真机,再定位问题方向。别的手机有那就是虚拟机的问题
    自己多写几个item项,有actionBar的activity会在actionBar最右侧显示一个菜单按钮,替代那些没有菜单键的手机

    super.onCreateOptionsMenu(menu)是不是要放在 inflate之后,也许是这个原因。
    getMenuInflater().inflate(R.menu.main, menu);
    return super.onCreateOptionsMenu(menu);
    试下,我怀疑是没掉super把menu放进activty里面去

    如果还是没结果,就再尝试别的办法吧

    点赞 评论 复制链接分享
  • wenxiaoxin19861101 wenxiaoxin19861101 2016-05-13 02:21

    他们说的都不对,这里给你一个管用的,你不显示的原因是你没有执行menu.add方法把你的项目加上去。
    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
    super.onCreateOptionsMenu(menu);

        Intent wallpaper = new Intent();
        wallpaper.setComponent(new ComponentName("com.android.systemui",
            "com.android.systemui.statusbar.phone.ChangePicActivity"));
        wallpaper.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
    
        Intent settings = new Intent(android.provider.Settings.ACTION_SETTINGS);
        settings.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
    
        // add()方法的四个参数,依次是:
        // 1、组别,如果不分组的话就写Menu.NONE,
        // 2、Id,这个很重要,Android根据这个Id来确定不同的菜单
        // 3、顺序,哪个菜单项在前面由这个参数的大小决定
        // 4、文本,菜单项的显示文本
        menu.add(Menu.NONE, Menu.FIRST, 0, R.string.menu_wallpaper).setIntent(wallpaper);
        menu.add(Menu.NONE, Menu.FIRST + 1, 0, R.string.menu_settings).setIntent(settings);
    
        return true;
    }
    
    点赞 评论 复制链接分享

相关推荐