Android保证金开始和右边(或保证金结束和左边)有什么区别?
这是一个微不足道的问题,但我似乎无法从文档中学习视图开始/结束和左/右之间的区别.可能我只是听不懂东西,但我根本无法取得任何进展.
谷歌Nexus 10很快推出,是第一个使用xxhdpi资源的设备.它的显示密度约为300 DPI(根据Nexus 10网站和此计算器).
但是,当我转到Android文档时,它指出:
ldpi :~120dpimdpi :~160dpihdpi :~240dpixhdpi :~320dpixxhdpi 未指定.为什么Nexus 10的300 DPI屏幕xxhdpi不是xhdpi,而DPI的近似值应该是xxhdpi多少?我们是否应该担心此时有新的资源(除了图标)xxhdpi,还是应该让操作系统扩大xhdpi资源?
我已经看到很多在android中创建自定义视图和布局的例子.我从他们那里学到的是测量(如Android开发人员网站上所说)的方法onMeasure(),它具有widthMeasureSpec和heightMeasureSpec作为参数.
我对这些问题非常困惑.
showSoftInput()没有为我显示键盘,但toggleSoftInput()确实如此.我看到一些其他帖子说要在使用模拟器时禁用硬键盘,但我没有使用模拟器.我在没有硬键盘的实际设备上加载我的APK.两种方法都不应该有效吗?为什么不起作用showSoftInput()?我想明确地将键盘与特定的文本字段关联起来.
不起作用:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
editText.setText("textchange"); //i see the text field update
imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);
Run Code Online (Sandbox Code Playgroud)
作品:
InputMethodManager imm = (InputMethodManager) getDelegate().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
Run Code Online (Sandbox Code Playgroud) 由于我针对Android的较新SDK版本,我收到了这行代码的警告:
return getString(R.string.usertab1).toUpperCase()
Run Code Online (Sandbox Code Playgroud)
当我将鼠标悬停在它上面时,它说:
隐式使用默认语言环境是常见的错误来源:
toUpperCase(Locale)改为使用.
有谁知道如何删除此错误?为什么它现在是使用这种方法的首选方式?
我得到这个答案,使用toUpperCase(Locale)但无法实现它.Locale对象来自哪里?
我有一个相当有趣的情况.我有一个充满地址和消息的SQLite数据库(地址不是唯一的;消息是).每条消息还有一个与之关联的日期.我想要做的是选择第一个消息的地址,消息,日期以及与该地址关联的消息数量.
所以,我想,"我可以通过集团的地址只有每个地址得到一个消息,然后按日期顺序这些,也获取地址栏的数量."
我这样做了,它有效......有点儿.它获取正确的计数,每个地址只获取一条消息,并按日期排序 - 但它不会选择该地址的最新消息.这似乎是武断的.
例如,我有三条消息(最早到最晚)来自地址Y的A,B,C和来自地址Z的三条消息D,E,F.查询可以获取消息B和E,然后按日期对它们进行排序.它应该获取消息C和F,并按日期对它们进行排序.
这是我到目前为止:
// Expanded version:
Cursor cursor = db.query(
/* FROM */ "messages_database",
/* SELECT */ new String[]{ "*", "COUNT(address) AS count" },
/* WHERE */ null,
/* WHERE args */ null,
/* GROUP BY */ "address",
/* HAVING */ null,
/* ORDER BY */ "date DESC"
);
// Or, same code on one line:
Cursor cursor = db.query("messages_database", new String[]{ "*", "COUNT(address) AS count" …Run Code Online (Sandbox Code Playgroud) 我正在开发一个应用程序,用户将在相机中拍摄照片并将其显示在具有图像视图的预览屏幕上.
**CameraCapture.java**
class ButtonClickHandler implements View.OnClickListener
{
public void onClick( View view ){
myVib.vibrate(50);
startCameraActivity();
}
}
protected void startCameraActivity()
{
File filenew = new File( _path );
Uri outputFileUri = Uri.fromFile( filenew );
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivityForResult( intent, 0 );
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
switch( resultCode )
{
case 0:
break;
case -1:
//pictaken++;
onPhotoTaken();
break;
}
}
protected void onPhotoTaken()
{
//pictaken=true;
Intent …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个正则表达式,我们可以检查某些参考集中的所有字母是否都出现在其他字符串中,但只有奇数(1,3,5,...).
这是代表问题的DFA(非常)原始图像:

我开始使用有限集,{a, b}所以我基本上会检查" 字符串中是否有奇数个as和奇数个bs?"
不幸的是,我自己并没有走得太远.我首先阅读了这个与这个概念非常相似的主题,但未能从中收集答案(aa|bb|(ab|ba)(aa|bb)*(ba|ab))*(b|(ab|ba)(bb|aa)*a).(我理解它是如何工作的,但不知道如何将其转换为检查两个项目的奇数.)
这是我到目前为止所提出的:^((ab|ba)(bb|aa)?|(bb|aa)?(ab|ba))+$.这基本上会检查是否存在ab或ba之后bb或aa有或全无,这将导致ab,ba,abaa,abbb,baaa,或babb.(它也是相反的,首先检查双字母.)然后可以无限期地重复.我遇到的问题是我似乎无法调整它以匹配字符串bbaaba而不匹配bbaa.
另外,上述方法不能动态调整以解决{a, b, c},例如,虽然我愿意放弃这个以解决初始问题.
这是我的测试字符串和所需的输出,括号中的原因如下:
"ba" # True (1a, 1b)
"abbb" # True (1a, 3b)
"bbba" # True (1a, 3b)
"bbab" # True (1a, 3b)
"ababab" …Run Code Online (Sandbox Code Playgroud) 我正在制作一个模拟时钟应用程序,在一个应用程序中有大约15个设计.设置设计的一种方法是widgetconfigs.XML为每个设计创建不同的设置,但这会使运行4.0+的设备变得混乱.
我还想过设置一个允许更改设计的活动
remoteviews.setInt(R.id.analogClock1, "setDialResource", R.drawable.clock1);
Run Code Online (Sandbox Code Playgroud)
但这不允许设置手绘画......我还能做什么?
这是我第一次在这里寻求帮助,我的部门(政府)已经在市场上发布了一些应用程序(谷歌播放),加密和描述工作非常好,直到昨天我拿到了Jelly Bean 4.2关系.加密工作正常,它实际上加密了要存储的信息.虽然解密它时,我得到一个完全相同的例外:pad block corrupted.我检查了字符串,并且在其他设备上与它一致(使用相同的密钥进行测试),这意味着它完全相同.问题是我们需要保持与以前版本的后兼容性,这意味着如果我在代码中更改某些内容,它应该能够读取旧的加密信息.它存储在SQLite上的加密信息,因为我需要将其编码为Base64.此行发生异常byte [] decrypted = cipher.doFinal(encrypted);
这是我的班级:
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import android.util.Base64;
public class EncodeDecodeAES {
private final static String HEX = "0123456789ABCDEF";
public static String encrypt(String seed, String cleartext) throws Exception {
byte[] rawKey = getRawKey(seed.getBytes());
byte[] result = encrypt(rawKey, cleartext.getBytes());
String fromHex = toHex(result);
String base64 = new String(Base64.encodeToString(fromHex.getBytes(), 0));
return base64;
}
public static String decrypt(String seed, String encrypted) throws Exception {
String base64 …Run Code Online (Sandbox Code Playgroud)