我在操作栏中有一个带有侧导航抽屉的主活动,在default_screen.xml中指定如下(请注意,为简洁起见省略了很多代码):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="190dp"
android:background="@drawable/honeycomb"
android:orientation="vertical"
>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_gravity="start"
app:headerLayout="@layout/header"
app:menu="@menu/drawer"
/>
Run Code Online (Sandbox Code Playgroud)
layout/header如下所示(为简洁起见,省略了一堆行):
<data>
<variable name="user" type="oose2017.place2b.ClientUser"/>
</data>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.displayName}"
android:textSize="14sp"
android:textColor="#FFF"
android:textStyle="bold"
android:gravity="left"
android:paddingBottom="4dp"
android:id="@+id/username"
android:layout_above="@+id/email"
android:layout_alignLeft="@+id/profile_image"
android:layout_alignStart="@+id/profile_image" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我在主活动中实例化我的default_screen,如下所示:
setContentView(R.layout.default_screen);
Run Code Online (Sandbox Code Playgroud)
我如何将数据绑定到标头?我尝试了一些不成功的事情,主要是:
DefaultScreenBinding binding = DataBindingUtil.setContentView(R.layout.default_screen);
Run Code Online (Sandbox Code Playgroud)
哪个不起作用.我怎样才能做到这一点?
所以我的项目遇到的一个问题是通过谷歌登录不能始终如一地工作.也就是说,它适用于我的朋友,而不是我的电脑,即使昨天在擦拭我的手机之前它对我有用(手机已损坏).我们的登录代码是谷歌登录的标准,问题是结果不断返回false我认为.代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome_screen);
findViewById(R.id.sign_in_button).setOnClickListener(this);
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
SignInButton signInButton = (SignInButton) findViewById(R.id.sign_in_button);
signInButton.setSize(SignInButton.SIZE_STANDARD);
signInButton.setScopes(gso.getScopeArray());
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.sign_in_button:
signIn();
break;
}
}
private void signIn() {
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Result returned …Run Code Online (Sandbox Code Playgroud) 我有一个我一直在开发的应用程序,但在 android studio 上遇到了问题。当我单击“构建->运行”然后选择我的设备时,该应用程序永远不会在我的手机上运行(并且自动出现的 android-studio 日志中没有任何内容,而在过去,当我使用此功能时,它通常会说“正在等待电话...”,然后应用程序会弹出并在电话上自动打开,您会得到一些其他相关信息)。我的手机已经处于开发者模式,并且未知来源的安装设置为开启。当我手动将应用程序从其 gradle 构建位置移动到手机,然后在文件资源管理器中手动安装时,一切都很好,应用程序按预期执行。然而,由于我需要调试,这不是一个非常可行的解决方案。有人对如何让它从 IDE 运行有什么建议吗?我尝试过重建和无效缓存/重新启动 android studio,但无济于事。
当我单击底部的运行选项卡时,我有一个空窗口。当我单击调试选项卡时,我看到:
Waiting for device.
Target device: samsung-samsung_sm_g920a-randomIntegerId
Uploading file
local path: /home/eric/Documents/class/OOSE/final_project/2015-group-17/project_code/android/Place2B/app/build/outputs/apk/app-debug.apk
remote path: /data/local/tmp/oose2017.myApp
Run Code Online (Sandbox Code Playgroud)
注意:我正在 Windows 8 主机上的 LUbuntu 15.04 VM 上构建应用程序,并使用最新版本的 android studio。
编辑:gradle 控制台也表明构建成功(显然,因为手动将 .apk 移动到设备可以正常工作)。