小编san*_*one的帖子

自定义全局Application类中断"android.app.Application无法强制转换为"

我有一个自定义的全局类,看起来像这样

import android.app.Application;

public class MyApp extends Application {

    public String MainAct;

    public String getMainAct() {
        return MainAct;
    }

    public void setMainAct(String mainAct) {
        MainAct = mainAct;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想Activity在其onCreate方法中通过另一个字符串保留此类中的字符串.

    String local = "myLocalVariable";
    ((MyApp) getApplication()).setMainAct(local); //breaks here!!!
    String name = ((MyApp) getApplication()).getMainAct();
Run Code Online (Sandbox Code Playgroud)

它在标记的行上打破了错误: Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to com.xxx.yyy.global.MyApp

我已经检查了五次代码,我无法在任何地方找到错误.谁能告诉我错误在哪里?!

谢谢

android

135
推荐指数
2
解决办法
7万
查看次数

如何重命名android包名?

按Shift + F6似乎只是重命名最后一个目录.
例如,在项目中com.example.test,它将仅提供重命名测试.如果我导航到包名称.java或Manifest文件并按Shift + F6 ,则同样适用.

那么有没有办法重命名包?

android intellij-idea

132
推荐指数
10
解决办法
19万
查看次数

什么时候不要在覆盖时调用super()方法?

当我创建自己的Android自定义类时,我是extend它的本机类.然后,当我要重写基方法,我总是叫super()方法,就像我一直做的onCreate,onStop

而且我认为就是这样,从一开始Android团队建议我们总是调用super每个方法覆盖.

但是,在很多书中我都可以看到,比我更有经验的开发人员经常忽略呼叫super,我真的怀疑他们是缺乏知识.例如,查看这个基本的SAX解析器类,其中super省略了startElement,characters并且endElement:

public class SAXParser extends DefaultHandler{
    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
        if(qName.equalsIgnoreCase("XXY")) {
            //do something
        }
    }

    public void characters(char[] ch, int start, int length) throws SAXException {
        //do something
    }

    public void endElement(String uri, String localName, String qName) throws SAXException {
        if(qName.equalsIgnoreCase("XXY")) {
            //do something …
Run Code Online (Sandbox Code Playgroud)

java android overriding

109
推荐指数
3
解决办法
4万
查看次数

如何在IntelliJ IDEA中添加外部库?

我正在尝试将外部库(放在/ libs目录中)添加到我的项目中.当我尝试使用该库中的方法时,我发现它们是红色的,这意味着无法识别库.当我单击Ctrl + B时​​,我收到一条消息"无法找到要发送的声明".

我使用这些步骤添加库(JAR文件):1.将库文件复制到/ libs目录2.打开项目结构 - >全局库 - >附加clases 3.找到库并单击确定

这是正确的方法吗?

PS.我试图以这种方式添加AdMob .jar文件.

intellij-idea

90
推荐指数
3
解决办法
16万
查看次数

在Eclipse中格式化XML代码

当我在Eclipse中编写.xml文件时,我经常需要手动缩进代码.例如

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/background"
android:layout_height="fill_parent"
android:layout_width="fill_parent" />
Run Code Online (Sandbox Code Playgroud)

格式化后,它看起来像这样.

<?xml version="1.0" encoding="utf-8"?>
   <LinearLayout   
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:background="@color/background"
      android:layout_height="fill_parent"   
      android:layout_width="fill_parent" />
Run Code Online (Sandbox Code Playgroud)

如何自动化?我在Eclipse for XML中找不到格式设置.

xml eclipse formatting

71
推荐指数
4
解决办法
8万
查看次数

如何获取类名,而不是完整路径?

我知道使用Context和方法getClass().getName()我可以得到一个代表完整类名的字符串,比如com.package1.package2.MainActivity.

我怎样才能只获得最后一部分,类名?在这种情况下,它将是MainActivity字符串.

我可以用一种简单的split()方法来做到这一点,但也许有更好的方法,更可靠.

android

69
推荐指数
3
解决办法
6万
查看次数

在Android Studio中重命名模块?

我选择了导入到Android Studio中Gradle项目的特定模块的错误名称.

在这张脸我想模块重命名Facebook1Facebook.

这在Gradle项目中是否可行,以及如何做到这一点?

android gradle android-studio

69
推荐指数
4
解决办法
4万
查看次数

What is MIPS system image in Android SDK manager?

With each SDK, I have a solution of installing MIPS system image.

What is it? What does it do and when will someone use it? What will happen if I do not install it?

java android mips

54
推荐指数
2
解决办法
2万
查看次数

将VectorDrawable转换为SVG

VectorDrawable手动或使用网络工具进行了相反的转换(SVG ).

但我很难做相反的事情.我有,VectorDrawable但我不知道如何将其转换为SVG,我可以找到零在线工具来做到这一点.

有没有人有这方面的经验,有哪些步骤或工具呢?

svg android android-vectordrawable

48
推荐指数
2
解决办法
3万
查看次数

具有多个条件的String.equals()(以及对结果的一个操作)

是否有可能在Java for Android中做这样的事情(这是一个伪代码)

IF (some_string.equals("john" OR "mary" OR "peter" OR "etc."){
   THEN do something
}
Run Code Online (Sandbox Code Playgroud)

目前,这是通过其中的多个String.equals()条件完成的||.

java android

45
推荐指数
3
解决办法
12万
查看次数