我正在开发一个机器人,我正在实施Google+ Sign.
我已经认证很好,但是,我想得到用户的名字,姓氏和电子邮件地址.
我使用以下内容尝试获取用户的名称,但是,这只能获取显示名称,而不是我通过Google+登录网站分别创建的名字和姓氏.
if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null)
{
Person currentPerson = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);
Log.d("Display Name", currentPerson.getDisplayName());
}
Run Code Online (Sandbox Code Playgroud)
第二个问题,我无法从响应中收到电子邮件.如果我调试应用程序并查看响应,我可以看到我的电子邮件地址,但由于某些原因在代码中它只是循环并错过了我的电子邮件所以返回null.
以下是电子邮件检索的代码.
final String account = Plus.AccountApi.getAccountName(mGoogleApiClient);
AsyncTask<Void, Void, String> task = new AsyncTask<Void, Void, String>()
{
@Override
protected String doInBackground(Void... params) {
HttpURLConnection urlConnection = null;
try
{
URL url = new URL("https://www.googleapis.com/plus/v1/people/me");
String sAccessToken = GoogleAuthUtil.getToken(SignIn.this, account,
"oauth2:" + Scopes.PLUS_LOGIN + " https://www.googleapis.com/auth/plus.profile.emails.read");
urlConnection = (HttpURLConnection)url.openConnection();
urlConnection.setRequestProperty("Authorization", "Bearer " + sAccessToken);
String content = CharStreams.toString(new InputStreamReader(urlConnection.getInputStream(),
Charsets.UTF_8));
if (!TextUtils.isEmpty(content))
{
JSONArray …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 C# WPF 中实现 GridSplitter,但我没有找到任何像样的教程,我已经尝试自己解决它,但到目前为止没有任何乐趣。
我有以下 XAML 布局:
<Window x:Class="SqliteManager.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="444" Width="802">
<Grid>
<Grid Grid.Column="0" HorizontalAlignment="Left" Name="grid1" Width="181" Background="#FFE23D3D" />
<GridSplitter Grid.Column="1" HorizontalAlignment="Left" Margin="179,0,0,0" Name="gridSplitter1" Width="10" ResizeDirection="Columns" />
<Grid Grid.Column="2" HorizontalAlignment="Left" Margin="187,0,0,0" Name="grid2" Width="593" Background="#FF2B42C7" />
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
实际程序中看起来如下所示。

在我的程序中,当我将鼠标放在网格分割器上时,我的光标会变为水平双端指针,但向左和向右拖动它绝对没有什么不同。一切都保留在当前放置的位置。
我想要一个<p>标签并<select>在同一条线上。
到目前为止我尝试过的一切都没有奏效。以下是我目前拥有的
<style type="text/css">
#platformRating select,
#platformRating p {
display: inline;
vertical-align: top;
line-height: 28px;
}
</style>
<div style="float: left; margin-left: 10px;">
<div id="platformRating">
<p>Platform:</p>
<select id="cboPlatform" name="cboPlatform">
<option>General</option>
<option>Android</option>
<option>Windows</option>
<option>Web Service</option>
</select>
</div>
<textarea id="txtRatingDescription" name="txtRatingDescription" placeholder="Enter your comment here"></textarea>
</div>
Run Code Online (Sandbox Code Playgroud)
显然,样式部分在<head>文档中,其余部分在<body>.
该<p>platform</p>和<select>在同一行,然后将文本区域的下方,但是,每一个元素上,我不想要一个新的生产线,所以我将如何解决这个问题?
我发现@Nit 的答案是正确的,只是我有一个小问题,我忘记了它导致 Nit 的答案不起作用。
在我的样式表中,我的select输入具有以下 CSS 。
select
{
display: block;
margin: 0;
width: 100%;
height: 44px;
appearance: none;
font-size: …Run Code Online (Sandbox Code Playgroud) 我正在开发一个 Android 应用程序,我正在尝试注册活动生命周期回调。
在我的启动器活动 (Agreement.java) 中,onCreate我有以下内容:
this.getApplication().registerActivityLifecycleCallbacks(new LoginManager());
Run Code Online (Sandbox Code Playgroud)
此活动会检查协议是否已达成一致,如果同意,则立即完成并调用 LoginActivity.java 但我在活动回调类中的 toast 通知没有显示,我的 logcat 消息也没有显示,因此它看起来并不像就像它被解雇一样。
下面是实现活动回调的 LoginManager 类
public class LoginManager extends Application implements Application.ActivityLifecycleCallbacks
{
private final String TAG = "LoginManager";
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState)
{
Toast.makeText(activity, "Activity Created", Toast.LENGTH_LONG).show();
Log.d(TAG, "Activity Created");
long currentEpochTime = System.currentTimeMillis() / 1000l;
Log.d(TAG, "Current Epoch: " + currentEpochTime);
CommonTasks commonTasks = new CommonTasks(activity);
SharedPreferences settings = commonTasks.getAppsSharedPreferences();
long timeDifference = currentEpochTime - settings.getLong(Defines.SharedPreferenceSettings.LAST_ACTIVE_EPOCH, 0);
Log.d(TAG, "Time Difference: …Run Code Online (Sandbox Code Playgroud) 我正在尝试更新脚本,以便它可以使用该Email::MIME对象发送电子邮件.
我创建了电子邮件对象,然后更新了邮件的正文,因为邮件正文可以根据不同的情况而改变.
我有以下代码
my $message = Email::MIME->create(
header_str => [
From => 'someone@example.com',
To => 'someoneelse@example.com',
Subject => 'This is the subject'
],
attributes => {
encoding => 'quoted-printable',
charset => 'ISO-8859-1'
}
);
if ( $i > 1 ) {
$message->body_str = "Here's one message";
}
else {
$message->body_str = "Here's seconds message";
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我收到以下错误:
无法修改非左值子程序调用
错误行引用了我正在更新的位置 body_str
我目前正在开发一个Android应用程序.我希望用户从列表视图中选择一个项目并加载在默认的android浏览器中使用所选选项分配的URL而不是使用webview,因为这意味着我必须有效地创建自己的Web浏览器.
感谢您的任何帮助,您可以提供
嗨,我目前正在ASP.net中开发一个Web应用程序.我正在创建一个注册表单,当用户输入他们想要使用的用户名时,它会对数据库执行检查以查看用户名是否已存在.我不希望在文本更改事件中完成此操作,因为我不希望每次在文本框中输入字符时都尝试查询数据库.当我想要做的是当文本框失去焦点时,通过点击下一个字段或点击另一个字段,然后检查数据库中的用户名.如果用户名已经退出,那么工具提示之类的消息会放在字段的旁边.
如何在文本框失去焦点时如何执行此操作.
我正在开发一个php项目,我遇到包含文件的问题.
我有一个PHP脚本,位于myapp/reports/index.php.提交表单时,它会向位于myapp/reports/phpHander/submit.php的另一个phpscript执行ajax发布.
然后,Submit.php必须包含一个用于发送电子邮件的php脚本.这样做是为了确保可以反复使用相同的代码,而无需在每次需要时对其进行输入.这个PHP脚本位于../../administrator/classes/send.php.
到目前为止工作正常,但send.php脚本包含另一个文件来获取应用程序配置设置,该文件位于administrator/appConfig.php中.问题是即使我输入了http://localhost/myapp/administrator/appConfig.php的完整网址,也找不到这个appConfig.php .
我究竟做错了什么.我正在使用php include函数来执行此操作并且其工作用于其他所有内容,但它似乎有问题,然后包括来自不同位置的另一个脚本.
感谢您的任何帮助,您可以提供.
我正在尝试记录一些项目的错误修复数据.我有一个布尔值,我需要写入一个文本文件但由于某种原因,下面永远不会打印布尔值是调用函数来写日志的代码.
writeLog("Index: $index Create Table Headers: ". $myBoolean);
Run Code Online (Sandbox Code Playgroud)
以下是实际写入文件的函数的代码
function writeLog($message)
{
$file = "log.txt";
$fh = fopen($file, 'a') or die("Can't open file");
$content = $message . "\r\n";
fwrite($fh, $content);
fclose($fh);
}
Run Code Online (Sandbox Code Playgroud)
当文件被写入时,我得到的是
索引:0创建表头:
我尝试过使用var_export($ myBoolean),但没有任何区别
感谢您的任何帮助,您可以提供.
我目前正在开发一个php项目,我试图使用foreach循环遍历数组.但是,有时数组可能只包含1个项目,因此当我尝试执行foreach时它会失败,因为1项只是被视为正常变量.
有没有办法我可以欺骗php认为1项数组实际上是一个数组,而不仅仅是一个变量,所以我没有得到这个错误.
谢谢你的帮助.