学习Android编程我尝试运行以下示例: https://abhiandroid.com/programming/shared-preference
这是我在activity_login.xml中的EditText的片段
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_password"
android:imeActionId="@+id/login"
android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionUnspecified"
android:inputType="textPassword"
android:maxLines="1"
android:singleLine="true"/>
我的IntelliJ IDEA仍在行中显示错误:
android:imeActionId =“ @ + id / login”
说:无效的资源类型,需要整数值
LoginActivity.java中自然是错误“无法解析符号登录”:
@Override
public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {
if (id == R.id.login || id == EditorInfo.IME_NULL) {
attemptLogin();
return true;
}
return false;
}
这是我的build.gradle:
android {
compileSdkVersion 26
buildToolsVersion "28.0.2"
defaultConfig {
applicationId "com.tcc.andsharedpreferences"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner
"android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support.constraint:constraint-layout:1.1.3'
compile 'com.android.support:design:26.1.0'
testCompile 'junit:junit:4.12'
androidTestCompile('com.android.support.test.espresso:espresso-core:3.0.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
}
你能帮我吗?我不明白为什么Android应该抱怨imeActionId类型,如果应该创建它(@ + id)????
答案 0 :(得分:0)
您可以在资源中定义一个整数值:
<!--res/values/integers.xml-->
<resources>
<item type="integer" name="customImeActionId" format="integer">100</item>
</resources>
并像这样使用它:
android:imeActionId="@integer/customImeActionId"
请参阅此SO question以获取更多详细信息