我查看了几个Android项目。为什么通常的做法是使用带有下划线的小写字母用于XML ID?
XML中的:
@+id/name_text <!-- sometimes with "_view" suffix, sometimes without -->
Java中的:
TextView nameTextView = // ...
我建议使用以下ID:@+id/nameTextView
实际上我是这样做的。会有什么缺点?
如果XML ID和字段名称遵循相同的模式,则特别是数据绑定可以更短(例如使用ButterKnife)。在这种情况下,我们可以省略注释中的XML ID:
@BindView TextView nameTextView;
答案 0 :(得分:1)
Java还没有这样的功能,但是对于Kotlin:Kotlin Android Extensions。
如果您的视图是这样声明的(在 activity_main.xml 中):
hello.setText("Hi!")
你可以在你的Activity中使用它:
import kotlinx.android.synthetic.main.activity_main.*
唯一需要做的就是将它添加到要使用视图的Kotlin文件中:
apply plugin: 'kotlin-android-extensions'
当然在项目本地build.gradle文件中添加依赖项:
public async void LogOn(IUser user, string domain, bool remember, TimeSpan timeout)
{
var context = AccessorsHelper.HttpContextAccessor.HttpContext;
await context.SignOutAsync(IdentityConstants.ApplicationScheme);
var claims = new List<Claim>
{
new Claim(ClaimsIdentity.DefaultNameClaimType, user.GetId().ToString())
};
claims.AddRange(user.GetRoles().Select(role => new Claim(ClaimsIdentity.DefaultRoleClaimType, role)));
await context.SignInAsync(IdentityConstants.ApplicationScheme,
new ClaimsPrincipal(new ClaimsIdentity(claims, "AuthenticationType")), // AuthenticationType is just a text and I do not know what is its usage.
new AuthenticationProperties
{
IsPersistent = remember,
ExpiresUtc = DateTimeOffset.UtcNow.Add(timeout)
});
}