我的问题很简单,
如何以编程方式设置我的按钮layout_gravity?
我在互联网上发现了这个,但它只是抛出了一个Nullpointer异常:
Button MyButton = new Button(this);
LinearLayout.LayoutParams lllp=(LinearLayout.LayoutParams)MyButton.getLayoutParams();
lllp.gravity=Gravity.RIGHT;
MyButton.setLayoutParams(lllp);
MyLinearLayout.addView(MyButton);
Run Code Online (Sandbox Code Playgroud)
有解决方案吗
所以,我从服务器获取了一些JSON值,但我不知道是否会有特定的字段.
所以喜欢:
{ "regatta_name":"ProbaRegatta",
"country":"Congo",
"status":"invited"
}
Run Code Online (Sandbox Code Playgroud)
有时,会有一个额外的字段,如:
{ "regatta_name":"ProbaRegatta",
"country":"Congo",
"status":"invited",
"club":"somevalue"
}
Run Code Online (Sandbox Code Playgroud)
我想检查名为"club"的字段是否存在,以便在解析时我不会得到org.json.JSONException:没有俱乐部的价值
我试图将项目从Eclipse迁移到Android工作室.最后我能够运行它,但在某个时刻我得到了这个例外,我在谷歌中没有发现这个:
04-22 00:08:15.484 9891-9891/hu.illion.kwindoo E/AndroidRuntime? FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{hu.illion.kwindoo/hu.illion.kwindoo.activity.MainActivity}: java.lang.IllegalArgumentException: AppCompat does not support the current theme features
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2092)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117)
...
Caused by: java.lang.IllegalArgumentException: AppCompat does not support the current theme features
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:360)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:246)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
at hu.illion.kwindoo.activity.MainActivity.onCreate(MainActivity.java:73)
at android.app.Activity.performCreate(Activity.java:5047)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2056)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117)
...
Run Code Online (Sandbox Code Playgroud)
73. MainActivity的行是:
setContentView(R.layout.activity_main);
Run Code Online (Sandbox Code Playgroud)
如果可以,请告诉我.
我想将我的应用程序发布到GooglePlay,但首先我想对签名的apk进行最后一次测试,以确保所有使用过的API密钥都能正常使用发布版本(GMaps,Facebook等)
所以我用我们的发布密钥制作了我的应用程序的签名版本,当我尝试将应用程序安装到设备时,我收到了一个错误:
我试图将apk复制到设备并使用apk安装程序应用程序安装它.
奇怪的是,当我使用调试签名密钥执行相同的过程时,一切都很好,我可以安装并运行应用程序.
以下是该过程的步骤:
我选择了释放键,输入密码.
我选择发布版本类型而不是调试
以防我在gradle文件中定义了签名密钥,但我必须承认我不知道是否有必要.
我现在尝试了7次7次,所以我认为这个问题不只是输入错误的密码,我也可以使用标准的调试android签名密钥.
如果可以的话请帮忙.
所以我找到了关于GoogleApiClient的一些不太清楚的东西. GoogleApiClient有一个名为onConnected的函数,它在客户端连接时运行(肯定)
我得到了自己的函数:startLocationListening,最终在GoogleApiClient的onConnected函数上调用.
所以我的startLocationListening函数无法在没有GoogleApiClient连接的情况下运行.
代码和日志:
@Override
public void onConnected(Bundle bundle) {
log("Google_Api_Client:connected.");
initLocationRequest();
startLocationListening(); //Exception caught inside this function
}
Run Code Online (Sandbox Code Playgroud)
...
private void startLocationListening() {
log("Starting_location_listening:now");
//Exception caught here below:
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
}
Run Code Online (Sandbox Code Playgroud)
例外是:
03-30 12:23:28.947: E/AndroidRuntime(4936): java.lang.IllegalStateException: GoogleApiClient is not connected yet.
03-30 12:23:28.947: E/AndroidRuntime(4936): at com.google.android.gms.internal.jx.a(Unknown Source)
03-30 12:23:28.947: E/AndroidRuntime(4936): at com.google.android.gms.common.api.c.b(Unknown Source)
03-30 12:23:28.947: E/AndroidRuntime(4936): at com.google.android.gms.internal.nf.requestLocationUpdates(Unknown Source)
03-30 12:23:28.947: E/AndroidRuntime(4936): at hu.company.testproject.service.GpsService.startLocationListening(GpsService.java:169)
03-30 12:23:28.947: E/AndroidRuntime(4936): …
Run Code Online (Sandbox Code Playgroud) android google-api-client google-play-services android-googleapiclient
如何将参数传递给OnClickListener()?
听了我的听众:
OnClickListener myListener = new OnClickListener()
{
@Override
public void onClick(View v)
{
//I want to reach params here
}
};
Run Code Online (Sandbox Code Playgroud)
我有12个按钮,我不想为他们写12个听众,将字符串传递给他们会很棒,他们可以做完全不同的事情.
我想将我的应用程序的最低API级别从5.0(Lollipop)降低到4.4(KitKat)
可悲的是,我无法获得任何真正的设备,因此我必须使用模拟器.
我的应用程序主要基于用户的位置,因此主要测试必须针对位置更改功能.
我已经制作了4.4模拟器并且工作正常,我的应用程序工作正常,但当我尝试通过扩展控制面板发送位置时没有任何反应.
如果我加载GPX文件,位置会显示在GPS数据播放内部的扩展控制面板的表格中,但设备不会获得任何位置.
我填写纬度和经度点击"发送"但没有任何反应.
在"发送"按钮无法点击在所有中,长期和LAT字段将被禁用,我可以不填任何东西."GPX"和"KML"选项卡也被禁用.
进度条确实增加,所以不像我尝试的前两种方法,这最终看起来像实际上做了一些东西,但模拟器仍然没有获得位置更改.一点也不.
telnet localhost 5554
Run Code Online (Sandbox Code Playgroud)
但我有Connection refused
错误信息.
所以我不能尝试通过以下方式发送位置:
geo fix <longitude value> <latitude value>
Run Code Online (Sandbox Code Playgroud)
(在我的Windows上启用了Telnet)
struct Foo
{
void f()
{
// (*)
}
};
Run Code Online (Sandbox Code Playgroud)
标有(*)的行中"this"的类型是什么?
是const Foo*还是Foo*?
我制作了一个从我们的服务器上下载视频的应用.问题是:
当我取消下载时,我打电话:
myAsyncTask.cancel(true)
Run Code Online (Sandbox Code Playgroud)
我注意到,这myAsyncTask
不会停止呼叫取消...我ProgressDialog
仍然上升,就像从状态跳到状态显示我每次取消并再次启动时AsyncTask
通过单击下载按钮,新的AsyncTask
启动...每个时间我点击下载..然后取消,然后再次单独下载AsyncTask
启动.
为什么myAsynTask.cancle(true)
不取消我的任务?我不再想要它了.如果我点击取消,我只想完全关闭它.
怎么做 ?
编辑:
感谢gtumca-MAC,以及帮助我的其他人做到了:
while (((count = input.read(data)) != -1) && (this.isCancelled()==false))
{
total += count;
publishProgress((int) (total * 100 / lenghtOfFile));
output.write(data, 0, count);
}
Run Code Online (Sandbox Code Playgroud)
谢谢!!!
当我启动我的应用程序时,我收到以下错误:
V/GoogleSignatureVerifier(4962): com.myapp.application signature not valid. Found:
V/GoogleSignatureVerifier(4962): MIIDDTCCAfWgAwIBAgIEO0I8qTANBgkqhkiG9w0BAQsFADA3MQswCQYDVQQGEwJVUzEQMA4GA1UE
V/GoogleSignatureVerifier(4962): ChMHQW5kcm9pZDEWMBQGA1UEAxMNQW5kcm9pZCBEZWJ1ZzAeFw0xNTA0MjEyMDM4NDRaFw00NTA0
V/GoogleSignatureVerifier(4962): MTMyMDM4NDRaMDcxCzAJBgNVBAYTAlVTMRAwDgYDVQQKEwdBbmRyb2lkMRYwFAYDVQQDEw1BbmRy
V/GoogleSignatureVerifier(4962): b2lkIERlYnVnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn/4shkSGhYP1pwMY4bFc
V/GoogleSignatureVerifier(4962): dKuMg6JyTdUON6XF8VxifADMYd/WwgzsETT+AHZXlo6RwQFhtwbxrvmuhBOMip2ivhmRGT8JpBcI
V/GoogleSignatureVerifier(4962): FqjCOxLzw3B3psZhnioZwCBTKBrCau8/q0XW40lXa/OCy2wA4EZs2ThaqwqgdGwpKXN+qHNHAFAS
V/GoogleSignatureVerifier(4962): 0g/SdupsSID+WctlL2XdCo50Jq/bJJAWQBz1SL03xBWUikuiWKM6mz/6Up8oE4WtZhU7V83R7FYM
V/GoogleSignatureVerifier(4962): XmRU4CghlvczG+ujCrZwSsYttsZgz2nb4NY2w9fvevAXgSB/N6JfOatnccW5vmukkm6g12iysA9u
V/GoogleSignatureVerifier(4962): hS3EjVb01bKyMdoXhQIDAQABoyEwHzAdBgNVHQ4EFgQUByeU0uE1tXyrL0UimKkJH2CbeXIwDQYJ
V/GoogleSignatureVerifier(4962): KoZIhvcNAQELBQADggEBABPPel3zEbk6/ZzwfvIS0z8IqvYgzxzxSZFEAp+PrlEEyk+IVHQgQAVS
V/GoogleSignatureVerifier(4962): I6JM9rNkxR2hvQHP3V9pd2d5bYhsCBZFSn6drOmnBrnABXH8e4OdqN9fRcKn+acfbZ+yBvZoVbr/
V/GoogleSignatureVerifier(4962): IhRvRrpLDtDNnD4kUoLfTgw/Xygdiq5/aU5WSfXdrUx6Va0vg6uJZY6Yq4J4a/R+/T7lLwzQgerq
V/GoogleSignatureVerifier(4962): eNUvY9HbcmegJDKMGeyc4Po8akAt9gDRo4nswuP0Sve8oSMqBEfO8ItTsIPx3UVEXuYUeC8e8nwb
V/GoogleSignatureVerifier(4962): fyhDXSFAo59Y1+NWcZNsGdum95YV8oZloF7+4fFqBwz7w0mb+M+JfY1sg7I=
Run Code Online (Sandbox Code Playgroud)
我已经读过debug.keystore默认密钥只有1年的有效期,所以必须先删除它以让android studio生成一个新的.最终我做到了,但错误仍然存在.
此举后,我的应用程序中的Google地图不再可见...
如果可以的话请帮忙.