我有一个自定义的全局类,看起来像这样
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
我已经检查了五次代码,我无法在任何地方找到错误.谁能告诉我错误在哪里?!
谢谢
按Shift + F6似乎只是重命名最后一个目录.
例如,在项目中com.example.test,它将仅提供重命名测试.如果我导航到包名称.java或Manifest文件并按Shift + F6 ,则同样适用.
那么有没有办法重命名包?
当我创建自己的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) 我正在尝试将外部库(放在/ libs目录中)添加到我的项目中.当我尝试使用该库中的方法时,我发现它们是红色的,这意味着无法识别库.当我单击Ctrl + B时,我收到一条消息"无法找到要发送的声明".
我使用这些步骤添加库(JAR文件):1.将库文件复制到/ libs目录2.打开项目结构 - >全局库 - >附加clases 3.找到库并单击确定
这是正确的方法吗?
PS.我试图以这种方式添加AdMob .jar文件.
当我在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中找不到格式设置.
我知道使用Context和方法getClass().getName()我可以得到一个代表完整类名的字符串,比如com.package1.package2.MainActivity.
我怎样才能只获得最后一部分,类名?在这种情况下,它将是MainActivity字符串.
我可以用一种简单的split()方法来做到这一点,但也许有更好的方法,更可靠.
我选择了导入到Android Studio中Gradle项目的特定模块的错误名称.

在这张脸我想模块重命名Facebook1到Facebook.
这在Gradle项目中是否可行,以及如何做到这一点?
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?
我VectorDrawable手动或使用网络工具进行了相反的转换(SVG ).
但我很难做相反的事情.我有,VectorDrawable但我不知道如何将其转换为SVG,我可以找到零在线工具来做到这一点.
有没有人有这方面的经验,有哪些步骤或工具呢?
是否有可能在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()条件完成的||.