这可能看起来违反直觉,但有没有办法禁用或删除浮动标签提示TextInputLayout
?我想要使用的原因TextInputLayout
而不仅仅是EditText
用于TextInputLayout
提供的计数器.
这是我到目前为止:
<android.support.design.widget.TextInputLayout
android:id="@+id/textContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
app:counterEnabled="true"
app:counterMaxLength="100">
<EditText
android:id="@+id/myEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top|left"
android:inputType="textMultiLine|textCapSentences"
android:maxLength="100"
android:scrollbars="vertical"
android:hint="This is my cool hint"/>
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud) 如果您为Android设备设置代理设置,它们是否适用于设备上的所有应用程序,包括浏览器?或者他们只适用于浏览器?
我问的原因是,当你去更改Android设备上的代理设置时,会出现此消息,这让我很困惑:
"HTTP proxy use by browser but may not be used by other applications"
Run Code Online (Sandbox Code Playgroud) 我一直在研究如何使用Cloud Endpoints验证您的客户端(Android,iOS,web-app),而无需用户按照文档显示的方式使用他们的Google帐户登录.
这样做的原因是我想要保护我的API或"将其锁定"仅限于我指定的客户端.有时我会有一个没有用户登录的应用程序.我讨厌纠缠我的用户现在登录,因此我的API是安全的.或者其他时候,我只想在网站上管理自己的用户,而不是使用Google+,Facebook或其他任何登录身份验证.
首先,让我首先展示您使用Cloud Endpoints API使用文档中指定的Google帐户登录信息验证Android应用的方式.在那之后,我将向您展示我的发现以及我需要帮助的解决方案的潜在领域.
(1)指定授权向API后端发出请求的应用程序的客户端ID(clientIds),以及(2)将User参数添加到要通过授权保护的所有公开方法.
public class Constants {
public static final String WEB_CLIENT_ID = "1-web-apps.apps.googleusercontent.com";
public static final String ANDROID_CLIENT_ID = "2-android-apps.googleusercontent.com";
public static final String IOS_CLIENT_ID = "3-ios-apps.googleusercontent.com";
public static final String ANDROID_AUDIENCE = WEB_CLIENT_ID;
public static final String EMAIL_SCOPE = "https://www.googleapis.com/auth/userinfo.email";
}
import com.google.api.server.spi.auth.common.User; //import for the User object
@Api(name = "myApi", version = "v1",
namespace = @ApiNamespace(ownerDomain = "${endpointOwnerDomain}",
ownerName = "${endpointOwnerDomain}",
packagePath="${endpointPackagePath}"),
scopes = {Constants.EMAIL_SCOPE},
clientIds = …
Run Code Online (Sandbox Code Playgroud) authentication google-app-engine android google-cloud-endpoints google-oauth
有没有办法让 Android Studio 在运行应用程序时自动打开运行选项卡?
我正在使用godaddy.com作为主机提供商,在Visual Studio for Web 2013中寻找Web部署工具的帮助.我买了托管空间并将域名链接到该托管空间.
我有一个我在Visual Studio for Web 2013中创建的Web表单解决方案,现在希望使用Web部署工具将我的ASP.NET网站部署到此托管空间,以供整个万维网查看.该解决方案还有一个小型数据库,我也想在该主机空间创建.
我感到困惑的是在Web部署工具中输入服务器,站点名称和目标URL的字段.
想象一下,我的网站名为'awesomewebsite.com',我的用户名是'awesomedude',我应该在上面的那些字段中输入什么?
将GAE用于一个全新的应用程序最令人恼火的事情之一就是必须处理如果没有人在15分钟内命中你的服务器就被重新启动的实例.由于应用程序是新用户,或者用户很少,因此对于一些不知道实例正在"旋转"的用户来说,会有一段很长的延迟时间.
据我所知,你有基于文档的这些选项:
使用manual-scaling
并设置实例数1
.
当你使用时manual-scaling
,你设置它的任何数量的实例都是你将拥有的 - 不多也不少.这显然是低效的,因为您可能正在为未使用的实例付费,并且当流量增加/减少时不会自动添加/删除实例
使用basic-scaling
和设置idle-timeout
为24小时或48小时.
只要有人在该时间段内至少查询一次API,这将使您的实例保持运行.
使用automatic-scaling
与min-idle-instances
和启用热身请求.
这不符合预期.根据这些文档:
如果您的应用没有提供流量,则对应用的第一个请求将始终是加载请求,而不是预热请求.
这并没有解决我们的问题,因为如果零实例正在运行,那么首先没有什么可以预热.因此,您仍然可以在第一次请求时获得延迟.
我想要的效果是始终有一个实例运行,然后在流量增加时从那里扩展(当然缩小但从不低于一个实例).这就像自动缩放,但总是运行1个实例.
这在GAE中是否可行?或者我错过了什么?
目前,我的临时解决方案是将我的应用程序设置为manual-scaling
1个实例,因此至少我的应用程序可用于新用户.
在我的数据库的表中,我有一个列,其中整个条目是一个长XML字符串,具有以下结构:
<Group1>
<Title>
<Name>John Doe</Name>
<Phone>555-3421</Phone>
<Email>catman@gmail.com</Email>
(+more)
</Title>
</Group1>
Run Code Online (Sandbox Code Playgroud)
这是我的SELECT语句,这是它输出的内容:
SELECT TheKey, TheData FROM MyTable;
Run Code Online (Sandbox Code Playgroud)
SQL Server Management Studio中的输出:
TheKey TheData
10000 <Group1><Title><Name>John Doe</Name><Phone>893-3421</Phone><Email>catman@gmail.com</Email></Title></Group1>
10001 <Group1><Title><Name>Mary Sue</Name><Phone>381-2342</Phone><Email>thebestdude@gmail.com</Email></Title></Group1>
10002 <Group1><Title><Name>Mark Dark</Name><Phone>312-7626</Phone><Email>mybook231@gmail.com</Email></Title></Group1>
10003 <Group1><Title><Name>Garth Dan</Name><Phone>341-4572</Phone><Email>lampshade032@gmail.com</Email><State>California</State></Title></Group1>
Run Code Online (Sandbox Code Playgroud)
我想写一些MS SQL查询,将这样的数据返回给我:
TheKey Name Phone Email State
10000 John Doe 893-3421 catman@gmail.com NULL
10001 Mary Sue 381-2342 thebestdude@gmail.com NULL
10002 Mark Dark 312-7626 mybook231@gmail.com NULL
10003 Garth Dan 341-4572 lampshade032@gmail.com California
Run Code Online (Sandbox Code Playgroud)
注意最后一个条目如何有一个额外的XML标记<State>
,其他条目没有.我希望它像这样灵活 - 使用某种父/子引用?
任何帮助这样做将非常感激,我似乎无法在任何地方找到任何东西=)
我想在我的云数据库中将日期存储在一个时区内,然后我的所有用户(其Android设备可能位于世界上任何地方),我希望转换并显示日期,无论其默认Android设置如何是.
这里展示了如何使用以下代码将Java存储为代码中的Java:
System.currentTimeMillis()
1)但是,如何将日期"标准化"为UTC(这是我听到的每个人都说我应该做的)?
2)然后,在从Cloud DB检索到该日期之后,我如何使用Java将该UTC日期转换为安装该应用程序的设备的时区?
从我收集的内容来看,Android可能会自动执行这些操作,但我不确定是什么 - 而且我不确定自己要做什么.有人可以为我澄清上述内容吗?
谢谢.
有没有办法在Java代码中唯一标识我的Android应用程序?也许是包名和其他东西的某种组合?我知道有一种方法可以识别出独特的Android 设备,但这不是我想要的.
我希望能够唯一地识别我制作的 Android应用程序,以便我可以将该信息传递给我自己的私有RESTful API.这将允许我验证呼叫来自我的Android应用程序而不是另一个未经授权的应用程序.我希望我的RESTful API只能与我制作的应用程序一起使用,因此没有人可以欺骗它或未经授权访问它.
或者这是不可能的?我只是想知道像Snapchat这样的应用程序是如何拥有自己的登录信息的.显然有些东西可以保护它.
我在AppBarLayout中有一个工具栏,如下所示:
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="right"
android:orientation="horizontal">
<ImageButton
android:id="@+id/editButton"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center_vertical"
android:layout_marginRight="16dp"
android:scaleType="fitCenter"
android:background=
"?attr/selectableItemBackgroundBorderless"
android:contentDescription="Post"
android:src="@drawable/ic_mode_edit_24dp"
/>
</LinearLayout>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)
在我的Activity.OnCreate()中,我尝试设置如下标题:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle("Edit");
Run Code Online (Sandbox Code Playgroud)
(不确定这是否重要但是......)之后我膨胀片段:
MyFragment fragment = new MyFragment();
fragment.setArguments(savedInstanceState);
// Add fragment with tag
getSupportFragmentManager().beginTransaction()
.add(R.id.content_frame, fragment, "my_frag")
.commit();
Run Code Online (Sandbox Code Playgroud)
但是,这没有效果.事实上,根本没有标题.这是因为我有LinearLayout
内在的Toolbar
东西吗?还是因为AppBarLayout
?