小编Nae*_*mul的帖子

Android Studio布局编辑器无法呈现自定义视图

在Android Studio中,布局编辑器无法在xml中预览自定义视图.

很简单的例子:

public class MyCustomView extends FrameLayout {
    public MyCustomView(Context context) {
        super(context);
    }

    public MyCustomView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyCustomView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
}
Run Code Online (Sandbox Code Playgroud)

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <com.myprojectxxx.view.MyCustomView
        android:layout_width="48dp"
        android:layout_height="48dp" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

Android Studio总是说,

渲染问题

找不到以下类:

  • com.myprojectxxx.view.MyCustomView(修复构建路径,创建类)

提示:尝试构建项目

当然,我有那门课.如果我单击"创建类",它会抱怨同一个类已经存在.如果我重建该项目,没有任何改变.

而且,是的,该项目在我的Android设备上运行良好.此外,它在Eclipse ADT中呈现得非常好.但是,在Android Studio中,它总是说"CLASSES可能无法找到".

Android Studio无法使用自定义视图预览xml文件?这有什么问题?

java android android-custom-view android-layout android-studio

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

Android - 在两个活动之间切换时,Activity的生命周期方法的调用顺序

我想通过调用从另一个Activity(FIRST Activity)开始一个Activity(SECOND Activity)startActivity(intent).在我真正做到之前,我发现有人说生命周期方法按以下顺序调用:

FIRST Activity onCreate
FIRST Activity onStart
FIRST Activity onResume
FIRST Activity onPause
SECOND Activity onCreate
SECOND Activity onStart
SECOND Activity onResume
FIRST Activity onStop
Run Code Online (Sandbox Code Playgroud)

SECOND Activity onResume之前总是叫FIRST Acitivity onStop?我想

FIRST Activity onPause
FIRST Activity onStop
SECOND Activity onCreate
SECOND Activity onStart
SECOND Activity onResume
Run Code Online (Sandbox Code Playgroud)

将被召唤,但似乎没有.

另外,如果我只是在两个活动之间切换,

FIRST Activity onPause
SECOND Activity onRestart
SECOND Activity onStart
SECOND Activity onResume
FIRST Activity onStop
Run Code Online (Sandbox Code Playgroud)

方法总是按此顺序调用吗?

android android-lifecycle android-activity

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

在Java中,我应该在String(双引号)中转义单个引号(')吗?

在Java中,\'表示单引号(单引号)字符,并\"表示双引号(双引号)字符.

所以,String s = "I\'m a human.";效果很好.

但是,String s = "I'm a human."也不会产生任何编译错误.

同样,char c = '\"';工作,但char c = '"';也有效.

在Java中,哪个更好用?在HTML或CSS中,style="font-family:'Arial Unicode MS';"更常见的事情(对于这样的标签,我认为这是使用引号的唯一方法),但在Java中,我通常看到人们使用转义字符,如"I\'m a human."

java string escaping character

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

在Java中,如何使用系统的默认语言环境(语言)获取星期几(星期日,星期一,...,星期六)的字符串

最简单的方法:

String[] namesOfDays = new String[7] {
    "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"
};
Run Code Online (Sandbox Code Playgroud)

此方法不使用Locale.因此,如果系统的语言不是英语,则此方法无法正常工作.

使用Joda时间,我们可以这样做:

String[] namesOfDays = new String[7];
LocalDate now = new LocalDate();

for (int i=0; i<7; i++) {
    /* DateTimeConstants.MONDAY = 1, TUESDAY = 2, ..., SUNDAY = 7 */
    namesOfDays[i] = now.withDayOfWeek((DateTimeConstants.SUNDAY + i - 1) % 7 + 1)
        .dayOfWeek().getAsShortText();
}
Run Code Online (Sandbox Code Playgroud)

但是,此方法使用今天的日期和日历计算,这对于最终目的而言是无用的.而且,它有点复杂.

是否有一个简单的方法来得到这样的字符串"Sun","Mon",...,"Sat"用系统的默认语言环境?

java android calendar jodatime dayofweek

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

为什么我不能引用val或typealias引用对象的嵌套对象?

请考虑以下代码:

object SomeObjectA {
    object SomeObjectB {
        val a = "test"
    }
}

val X = SomeObjectA
typealias Y = SomeObjectA

SomeObjectA.SomeObjectB // works
X.SomeObjectB // error
Y.SomeObjectB // error
Run Code Online (Sandbox Code Playgroud)

我不能引用使用valtypealias引用外部对象的嵌套对象(在外部对象中).为什么?

reference inner-classes kotlin

18
推荐指数
2
解决办法
1201
查看次数

为什么== operator和equals()对Scala中的AnyVal值的行为有所不同

在scaladoc中scala.Any,解释了运算符==(或方法==):

该表达式x == that相当于if (x eq null) that eq null else x.equals(that) http://www.scala-lang.org/api/current/#scala.Any

对于子类的对象AnyRef,我可以很容易地理解它,我没有看到任何奇怪的东西.

然而,对于值AnyVal,(我的意思是Int,Double,Long,等,)上面的定义是有点棘手(1 eq null?如果我们不转变这并不编译1到java.lang.Integer中).此外,==equals()不同的表现.

我举几个例子.

scala> 1 == 1
res0: Boolean = true

scala> 1 == 1.0
res1: Boolean = true

scala> 1 == 1.2
res2: Boolean = false

scala> 2 == BigInt(2)
res3: Boolean = true

scala> 2.0 == …

primitive scala equality equals

14
推荐指数
1
解决办法
8207
查看次数

如何在Python 3.7+中定义循环相关的数据类?

假设class A有一个类型为的成员class B,并且class B有一个类型为的成员class A.

在Scala或Kotlin中,您可以按任何顺序定义类,而不必担心在这种情况下,因为第一个定义的类可以像往常一样使用第二个定义的类,即使在case/data类中也是如此.

但是在Python中,以下代码

class A:
    b = B()

class B:
    a = A()     
Run Code Online (Sandbox Code Playgroud)

抛出编译错误,因为class B在定义时class A未定义.

你可以解决这个简单的案例,就像在这个答案中一样

class A:
    pass

class B:
    a = A()

A.b = B()
Run Code Online (Sandbox Code Playgroud)

但是,这种方式对Python中的数据类不起作用,因为在定义数据类之后分配成员不会更新数据类的自动生成方法,这使得"数据类"的使用变得无用.

@dataclass
class A:
    b: B  # or `b: Optional[B]`

@dataclass
class B:
    a: A  # or `a: Optional[A]`
Run Code Online (Sandbox Code Playgroud)

我该如何避免这个问题?

python circular-dependency python-3.x python-dataclasses

14
推荐指数
1
解决办法
686
查看次数

如果兄弟视图较大,则为MATCH_PARENT,如果兄弟视图较小,则为WRAP_CONTENT

我在布局中有两个视图.我会打电话给他们View A,并View B分别.

????????
????????
??A??B??
????????
????????
Run Code Online (Sandbox Code Playgroud)

父布局的高度(包括View AView B)是WRAP_CONTENT.

这里的高度View BWRAP_CONTENT.也就是说,其高度可以根据其内容而改变.

我想做的是

  1. 如果内容短于内容,则将View A高度设置为View B高度.View AView B
  2. View A如果View A内容高于内容,则将高度设置为自己内容的高度View B.

所以,

①如果含量View B较高,则将View A高度设置为View B高度.

       ????????      ????????
       ????????      ????????
       ?? ?? ??      ??A?? ??
I want ??A??B??, not ?????B??.
       ?? ?? ??      ?   ? ??
       ???????? …
Run Code Online (Sandbox Code Playgroud)

android android-layout

12
推荐指数
1
解决办法
3796
查看次数

如何将CharArray/Array <Char>转换为String?

CharArray的内容是如下字符:

val chars = arrayOf('A', 'B', 'C')
Run Code Online (Sandbox Code Playgroud)

要么

val chars = "ABC".toCharArray()
Run Code Online (Sandbox Code Playgroud)

我想从中获取字符串"ABC".我该怎么做?

chars.toString()不起作用; 它就好像chars是一个普通的整数数组.

arrays string kotlin

12
推荐指数
1
解决办法
6370
查看次数

如何防止在Activity的运行时更改时销毁绑定的Service(例如:orientation)

我有一个绑定的服务.活动正在绑定它.它取消了Service on Activity的onStop()方法.

问题是,如果Activity发生了运行时更改(例如,方向更改),则会重新创建Activity.因此,onStop()从Activity调用方法,并且Activity在该方法中取消绑定服务,这导致服务的破坏(并重新启动它).

我希望保持Service不会在运行时更改中被销毁,同时在Activity不可见时保持Service停止.你可以说尝试startService()但是当Activity不可见时它会使服务停止.如果我添加stopService Activity onStop(),那么结果与bindService()和相同unbindService().

推迟unbindService()在Acitivity中onStop()可以部分地解决这个问题,但延迟时间将是任意的,这会阻止Activity在一段时间内获得GC.我想要一个更清晰的解决方案.

我不想要解决方案,android:configChanges="orientation"因为还有其他运行时更改,并且它是处理运行时更改的沮丧方式.

简而言之,我希望服务就像一个叫做片段的片段setRetainInstance(true).但是,片段没有类似的东西bindService().我该怎么办?

java android android-service

9
推荐指数
1
解决办法
2927
查看次数