当我将我的应用程序安装到设备或模拟器上时,它会在应用程序菜单中多次出现,在我的情况下,我会看到4个图标显示我的应用程序名称.
似乎每个图标代表一个活动,并且由于我的应用程序包含3个选项卡(带有活动),我的菜单上的前3个图标转到特定活动,第4个图标将我带到应用程序本身
这是我的表现
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jameselsey"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:name="com.jameselsey.domain.GlobalState"
android:theme="@android:style/Theme.NoTitleBar">
<activity android:name=".DefaultActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MyContactsActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MyMapsActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".OptionsActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" /> …Run Code Online (Sandbox Code Playgroud) 当在活动之间转换时,例如呼叫startActivity();或使用back按钮时,屏幕从侧面滑入.
有没有办法改变这个?我有一个类似闪存卡的应用程序,所以当我从活动A转移到活动时,BI希望屏幕翻转就像转动真正的闪存卡一样.
开箱即用有没有办法做到这一点?或者这需要一些自定义动画?
我有以下构建环境:
我可以从命令行(在 jenkins 工作区区域)创建一个发布 APK(经过压缩对齐和签名),方法是运行ant release并在提示时输入密钥库通行证。
但是,使用 Jenkins 作业中的相同构建命令会失败,并显示以下内容:
release:
[echo] Signing final apk...
[signjar] Signing JAR: /home/james/.jenkins/workspace/android-sam/androidsam/bin/AndroidSam-unsigned.apk to /home/james/.jenkins/workspace/android-sam/androidsam/bin/AndroidSam-unaligned.apk as mykeystore
[signjar] jarsigner: Certificate chain not found for: mykeystore . mykeystore must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
BUILD FAILED
/home/james/tools/android-sdk-linux_x86/tools/ant/main_rules.xml:641: jarsigner returned: 1
Run Code Online (Sandbox Code Playgroud)
在 jenkins ant 目标步骤中,我设置了以下属性:
key.store=my-release-key.keystore
key.alias=mykeystore
key.store.password=<mypass>
key.alias.password=<mypass>
sdk.dir=/home/james/tools/android-sdk-linux_x86
Run Code Online (Sandbox Code Playgroud)
什么会导致詹金斯无法签名,从而从命令行执行相同的目标工作正常?
我用谷歌搜索了这个,发现有些人正在编写自己的 bash 脚本来签署他们的 APK,然后将它们作为 shell …
ubuntu continuous-integration android android-2.1-eclair jenkins
从API级别9开始,有android:filterTouchesWhenObscured属性和相应的setFilterTouchesWhenObscured方法ViewGroup.例如,当视图已onClickListener设置且另一个视图遮挡该视图(例如覆盖面板,吐司或其他任何内容)时,触摸将不会传递到模糊视图 - 在我的示例中,onClick不会被触发.
但是,这在API级别7中不可用 - 对于我的项目,要求是Android 2.1及更高版本,这意味着我必须使用级别7.
有一个简单的方法吗?在级别7中,此属性基本上是硬编码为FALSE.结果,我得到了这种奇怪的行为:在一个视图上,我有一个按钮.按下时,另一个视图滑动到位,用按钮覆盖视图.在此视图中,有自己的按钮,但它与下方按钮的位置不匹配.因此,如果用户触摸下方按钮所在位置的覆盖面板,onClick则再次触发该按钮 - 而不是我想要/需要的按钮.
onClick在这种情况下,我该怎么办才能防止射击?谢谢.
我从一些用户那里得到了一个NullPointerException,我无法发现问题所在,它被抛到了这一行:
((Button)findViewById(R.id.speakEnglishButton)).setText("");
我无法看到有什么问题,该按钮存在该Id,它编译得很好,在我的模拟器和2个设备上正常工作,但是我在我的开发者控制台中为这个用户发布了大约100个左右的错误版.
仔细观察onResume:
@Override
protected void onResume()
{
super.onResume();
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
boolean isButtonLabelsEnabled = sp.getBoolean("isButtonLabelsEnabled", false);
if (!isButtonLabelsEnabled)
{
((Button)findViewById(R.id.speakEnglishButton)).setText("");
((Button)findViewById(R.id.speakFrenchButton)).setText("");
((Button)findViewById(R.id.speakSpanishButton)).setText("");
((Button)findViewById(R.id.speakGermanButton)).setText("");
((Button)findViewById(R.id.speakItalianButton)).setText("");
}
else
{
((Button)findViewById(R.id.speakEnglishButton)).setText(getString(R.string.btnLblEnglish));
((Button)findViewById(R.id.speakFrenchButton)).setText(getString(R.string.btnLblFrench));
((Button)findViewById(R.id.speakSpanishButton)).setText(getString(R.string.btnLblSpanish));
((Button)findViewById(R.id.speakGermanButton)).setText(getString(R.string.btnLblGerman));
((Button)findViewById(R.id.speakItalianButton)).setText(getString(R.string.btnLblItalian));
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,我正在做的是检查保存的首选项布尔值,并根据其值,我要么在按钮上设置标签,要么将它们设置为空白.
任何人都可以建议吗?
谢谢
我有一个启动画面/加载屏幕,在我的大位图的绘制调用完成后立即有.setVisibility()到GONE.问题是启动画面需要一些弹出窗口,我认为这是由于主要活动启动并在首次运行时执行CPU密集型应用程序.有没有办法尽快显示我的启动画面?如果我在不同的线程中拥有它可能会好吗?启动画面只是一个位图,其下方有一个progressBar.我的布局是基于xml的,所以我看不到自己使用setContentView.谢谢.
自Android首次发布以来已经过了大约2年,并且已经有6到7款Android版本,与Windows手机不同.我发现在2.1和2.2之间有很多变化.调用我的本地服务的方式和其他方法已被弃用等.
那么Android 2.2的稳定性如何.我们会更频繁地发布吗?在2.2中开发是否会让我受伤?2.2听起来像一个子版本,它还没有基线.你的想法是什么?
我是Android的新手.我有一个关于如何实现`listView 这里的教程:
我实现了它,它工作正常.我需要实现一个ViewSwitcher相同的.就像我刷这首歌一样,我需要得到一些选项,如播放,添加到队列等,
请完成该教程并寻求帮助.我差不多3个星期都在挣扎.
希望有人能帮助我.
编辑1:以下代码是主要活动:
import java.util.ArrayList;
import java.util.HashMap;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.widget.ViewSwitcher;
public class CustomizedListView extends Activity implements OnGestureListener{
// All static variables
static final String URL = "http://api.androidhive.info/music/music.xml";
// XML node keys
static final String KEY_SONG = "song"; // parent node
static final String KEY_ID = …Run Code Online (Sandbox Code Playgroud) android swipe android-listview viewswitcher android-2.1-eclair
我在我的活动中添加了一个广告,如下所示:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.languageselection);
// Create the adView
adView = new AdView(this, AdSize.BANNER, MY_AD_UNIT_ID);
// Lookup your LinearLayout assuming it?s been given
// the attribute android:id="@+id/mainLayout"
LinearLayout layout = (LinearLayout) findViewById(R.id.ad_layout);
// Add the adView to it
layout.addView(adView);
// Initiate a generic request to load it with an ad
adView.loadAd(new AdRequest());
}
Run Code Online (Sandbox Code Playgroud)
这加载了广告.但是,如果我单击菜单按钮并修改某些共享首选项并返回,则广告已消失且无法重新填充.
这就是我从我的活动中导航的方式,注意我没有在活动上调用完成,因此在onCreate中创建的广告应该仍然存在?
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.aboutme:
startActivity(new Intent(this, About.class));
return true;
case R.id.help:
startActivity(new Intent(this, Help.class)); …Run Code Online (Sandbox Code Playgroud) android ×9
admob ×1
android-ui ×1
animation ×1
jenkins ×1
launcher ×1
swipe ×1
ubuntu ×1
viewswitcher ×1