我是Android的新手.在我正在使用的Android应用程序中HashMap,但我收到警告:
**"Use new SparseArray<String>(...) instead for better performance"**
Run Code Online (Sandbox Code Playgroud)
这意味着什么,我该如何使用SparseArray<String>呢?
我正在timezone使用此代码获取Android设备
TimeZone tz = TimeZone.getDefault();
String current_Time_Zone = (TimeZone.getTimeZone(tz.getID()).getDisplayName(
false, TimeZone.SHORT))
Run Code Online (Sandbox Code Playgroud)
但它总是让我timezone像" IST",但我想得到GMT像这样的时区GMT+7:00.
我的问题是我希望从编辑文本中获取精确文本,其中包含在编辑文本中设置的字体以及文本大小,文本颜色和文本样式,如粗体,斜体和下划线.
到目前为止,我使用了像这样的Spannable Spannable messageText;并从EditText中获取这样的文本
messageText = editText.getText();
Run Code Online (Sandbox Code Playgroud)
并设置为textview
textView.setText(messageText);
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,它只返回简单的字符串color,font,size and style.
EditText
<EditText
android:id="@+id/message"
android:layout_width="fill_parent"
android:layout_height="180dp"
android:inputType="textMultiLine"
android:singleLine="false"
android:tag="no"
android:textColor="#000000"
android:textSize="15sp"
android:textStyle="normal"
android:typeface="normal" />
TextView
<TextView
android:id="@+id/preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text=""
android:textColor="#000000"
android:textSize="15sp"
android:textStyle="normal"
android:typeface="normal" />
Run Code Online (Sandbox Code Playgroud)
帮帮我,谢谢
我在Android中实现了中介广告,但它没有显示我在Ad Network Mediation中使用当前的AdMob House Ads和Hunt Mobile Ads.
我实现了xml和java编码方式,但对我来说都不起作用.
我的xml代码
<com.google.ads.AdView
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/ad"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
ads:adSize="SMART_BANNER"
ads:adUnitId="6cd435789dcc43c0"
ads:loadAdOnCreate="true" />
Run Code Online (Sandbox Code Playgroud)
并且日志cat错误是
01-23 19:13:10.079: E/Ads(1771): Cannot find adapter class 'com.huntmads.admobadaptor.HuntMadsAdapter'. Did you link the ad network's mediation adapter? Skipping ad network.
01-23 19:13:10.079: E/Ads(1771): java.lang.ClassNotFoundException: com.huntmads.admobadaptor.HuntMadsAdapter
01-23 19:13:10.079: E/Ads(1771): at java.lang.Class.classForName(Native Method)
01-23 19:13:10.079: E/Ads(1771): at java.lang.Class.forName(Class.java:217)
01-23 19:13:10.079: E/Ads(1771): at java.lang.Class.forName(Class.java:172)
01-23 19:13:10.079: E/Ads(1771): at com.google.ads.g.a(SourceFile:133)
01-23 19:13:10.079: E/Ads(1771): at com.google.ads.i.run(SourceFile:116)
01-23 19:13:10.079: E/Ads(1771): at android.os.Handler.handleCallback(Handler.java:605)
01-23 19:13:10.079: E/Ads(1771): at android.os.Handler.dispatchMessage(Handler.java:92)
01-23 …Run Code Online (Sandbox Code Playgroud) 我设计了一个Android应用程序小部件,其中两个ImageView我想要更改图像ImageView时单击图像以及调用方法.现在我用RemoteView 这个
RemoteViews views1 = new RemoteViews(context.getPackageName(),
R.layout.activity_main);
views1.setOnClickPendingIntent(R.id.smsImageView, pendIntent1);
appWidgetManager.updateAppWidget(appWidgetIds, views1);
Run Code Online (Sandbox Code Playgroud)
但我不知道我如何改变imageView
谢谢你的形象.
在我的应用程序中,我通过使用此代码获取所有通话记录.返回我在我的Android手机中的所有通话记录.
public class CallLogHelper {
public static Cursor getAllCallLogs(ContentResolver cr) {
// reading all data in descending order according to DATE
String strOrder = android.provider.CallLog.Calls.DATE + " DESC";
Uri callUri = Uri.parse("content://call_log/calls");
Cursor curCallLogs = cr.query(callUri, null, null, null, strOrder);
return curCallLogs;
}
public static void insertPlaceholderCall(ContentResolver contentResolver,
String name, String number) {
ContentValues values = new ContentValues();
values.put(CallLog.Calls.NUMBER, number);
values.put(CallLog.Calls.DATE, System.currentTimeMillis());
values.put(CallLog.Calls.DURATION, 0);
values.put(CallLog.Calls.TYPE, CallLog.Calls.OUTGOING_TYPE);
values.put(CallLog.Calls.NEW, 1);
values.put(CallLog.Calls.CACHED_NAME, name);
values.put(CallLog.Calls.CACHED_NUMBER_TYPE, 0);
values.put(CallLog.Calls.CACHED_NUMBER_LABEL, "");
Log.d("Call Log", "Inserting call log placeholder …Run Code Online (Sandbox Code Playgroud) java我正在使用bouncy castle库加载公钥,但总是出现错误Invalid point encoding 0x45。
公钥是使用 C# CNG API 在客户端生成的。
Java方法1:
public PublicKey loadPublicKey(String encodedPublicKey)
throws NoSuchProviderException, NoSuchAlgorithmException, InvalidKeySpecException {
byte[] keybytes = java.util.Base64.getDecoder().decode(encodedPublicKey);
Security.addProvider(new BouncyCastleProvider());
ECNamedCurveParameterSpec params = ECNamedCurveTable.getParameterSpec("P-256");
ECPublicKeySpec keySpec = new ECPublicKeySpec(params.getCurve().decodePoint(keybytes), params);
return new BCECPublicKey("ECDH", keySpec, BouncyCastleProvider.CONFIGURATION);
}
Run Code Online (Sandbox Code Playgroud)
方法二
public PublicKey loadPublicKey(String pKey) throws Exception {
byte[] keybytes = java.util.Base64.getDecoder().decode(pKey);
Security.addProvider(new BouncyCastleProvider());
ECParameterSpec params = ECNamedCurveTable.getParameterSpec("P-256");
ECPublicKeySpec pubKey = new ECPublicKeySpec(params.getCurve().decodePoint(keybytes), params);
KeyFactory kf = KeyFactory.getInstance("ECDH", "BC");
return kf.generatePublic(pubKey);
}
Run Code Online (Sandbox Code Playgroud)
例外 …
我们在网络上使用coldfusion 加密方法。
Encrypt(plainText, key, "AES", "Hex")
Run Code Online (Sandbox Code Playgroud)
并且Android我们以以下方式使用加密方法:
public static String aesEncryption(String plainText, String key) {
try {
SecretKey secKey = new SecretKeySpec(key.getBytes(), "AES");
Cipher aesCipher = Cipher.getInstance("AES");
aesCipher.init(Cipher.ENCRYPT_MODE, secKey);
aesCipher.update(plainText.getBytes());
byte[] cipherText = aesCipher.doFinal();
return bytesToHex(cipherText);
} catch (NoSuchAlgorithmException | InvalidKeyException | NoSuchPaddingException | BadPaddingException | IllegalBlockSizeException e) {
e.printStackTrace();
}
return null;
}
private static final char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();
public static String bytesToHex(byte[] bytes) {
char[] hexChars = new char[bytes.length * 2];
for (int …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,有三个活动:A、B 和 C。活动 A 是主要活动。
当我使用 A 从 A 启动 Activity B 时Intent,A 会自动销毁。但是,当我启动 B 时,我还没有完成 A。然后,当我按下设备中的后退按钮时,A 开始使用,onCreate并且我丢失了所有数据,因为我没有使用Intent返回按钮。
从 B 打开 C 时也会发生同样的情况。
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startActivity(new Intent(ActivityA.this,
ActivityB.class));
}
});
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?我该如何解决?
android ×8
java ×2
admob ×1
aes ×1
bouncycastle ×1
c# ×1
coldfusion ×1
cryptography ×1
encryption ×1
hashmap ×1
remoteview ×1
sql ×1
sqlite ×1
textview ×1
timezone ×1