我想比较我的Android应用程序的两个日期,但我有一个非常奇怪的问题.
例如:
如果我将back in the past日期设置为127天前:
this.dateEvent = System.currentTimeMillis() - (127 * 24 * 3600 * 1000)
Run Code Online (Sandbox Code Playgroud)
然后将其与当前日期(天数之间)进行比较
Calendar sDate = getDatePart(new Date(this.dateEvent));
Calendar eDate = getDatePart(new Date(System.currentTimeMillis()));
int daysBetween = 0;
while (sDate.before(eDate))
{
sDate.add(Calendar.DAY_OF_MONTH, 1);
daysBetween ++;
}
while (sDate.after(eDate))
{
eDate.add(Calendar.DAY_OF_MONTH, 1);
daysBetween ++;
}
return daysBetween;
Run Code Online (Sandbox Code Playgroud)
它将返回22,这完全不是预期的.
我做错了什么,或者这是Calendar班级的问题?
我在将gif图像转换为基本64字符串时遇到问题.
当我转换它时,代码加起来像100,000 AAAAAA,而图像真的很小!
这是我的代码:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.util.ArrayList;
public class Main
{
public static void main(String[] args)
{
try
{
FileWriter fstream = new FileWriter("./out.txt");
BufferedWriter out = new BufferedWriter(fstream);
File folder = new File("./flags/");
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++)
{
if (listOfFiles[i].isFile())
{
Main.readFile(out, listOfFiles[i]);
}
}
out.close();
System.out.println("Done");
}
catch (Exception e) {}
}
public static void readFile(BufferedWriter out, File file)
{
try
{ …Run Code Online (Sandbox Code Playgroud) 对于我的某个应用,我需要用户选择其中一个现有联系人或创建一个新联系人.使用以下代码很容易选择一个:
i = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
startActivityForResult(i, PICK_CONTACT_REQUEST );
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个新的联系人.我试图使用该代码,但它不会触发活动结果:
i = new Intent(Intent.ACTION_INSERT);
i.setType(Contacts.CONTENT_TYPE);
startActivityForResult(i, PICK_CONTACT_REQUEST);
Run Code Online (Sandbox Code Playgroud)
上面的代码将启动联系人添加表单.然后,当我验证它时,它只是要求我打开联系人列表,并且永远不会触发onActivityResult方法.
你能帮我把它搞定吗?
我在某些电路板上看到这是不可能的,我必须创建自己的联系人添加表格.你能证实吗?
编辑:问题解决了.检查我的答案.
我正在尝试直接从我的应用更新电话簿的联系人.我能够添加和删除联系人,但更新什么都不做!
插入后或当我抓住联系人时,我收集了CONTACT_ID(Aka _ID).
这是我的更新代码:
public void update(Relation r)
{
Log.e("", ""+r.getBook_id());
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
Builder builder = ContentProviderOperation.newUpdate(ContactsContract.RawContacts.CONTENT_URI);
builder.withValue(RawContacts.ACCOUNT_TYPE, null);
builder.withValue(RawContacts.ACCOUNT_NAME, null);
ops.add(builder.build());
// Name
builder = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);
builder.withSelection(ContactsContract.Data._ID, new String[]{String.valueOf(r.getBook_id())});
builder.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
builder.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, r.getFirstName()+ " " +r.getLastName());
ops.add(builder.build());
// Number
builder = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);
builder.withSelection(ContactsContract.Data._ID, new String[]{String.valueOf(r.getBook_id())});
builder.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
builder.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, r.getNumber());
builder.withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_WORK);
ops.add(builder.build());
// Picture
try
{
Bitmap bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(), Uri.parse(r.getPhoto()));
ByteArrayOutputStream image = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG , 100, image);
builder = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);
builder.withSelection(ContactsContract.Data._ID, new String[]{String.valueOf(r.getBook_id())}); …Run Code Online (Sandbox Code Playgroud) 我想在我的布局中移动两个不同的视图,以便用户可以像他的愿望一样显示它.
到目前为止,我已经制作了以下代码来处理触摸事件:
this.viewEvent.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event)
{
final int y = (int) event.getRawY();
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) view.getLayoutParams();
switch (event.getAction() & MotionEvent.ACTION_MASK)
{
case MotionEvent.ACTION_DOWN:
element.setEventY(y - params.topMargin);
break;
case MotionEvent.ACTION_UP:
viewGroup.invalidate();
break;
case MotionEvent.ACTION_POINTER_DOWN:
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
params.topMargin = y - element.getEventY();
params.bottomMargin = screenHeight - view.getHeight() - params.topMargin;
// Avoid out of screen
if (params.topMargin < 0) return true;
// Apply changes
view.setLayoutParams(params);
break;
}
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
element …
我想在设备数据库中添加一些MMS消息.
我有以下代码,但它根本不起作用.没有条目添加到本机应用程序中...
public static Uri insert(Context context, String[] to, String subject, Uri messageUri)
{
try
{
Uri destUri = Uri.parse("content://mms/sent");
// Get thread id
Set<String> recipients = new HashSet<String>();
recipients.addAll(Arrays.asList(to));
long thread_id = getOrCreateThreadId(context, recipients);
Log.e(">>>>>>>", "Thread ID is " + thread_id);
// Create a dummy sms
ContentValues dummyValues = new ContentValues();
dummyValues.put("thread_id", thread_id);
dummyValues.put("body", "Dummy SMS body.");
Uri dummySms = context.getContentResolver().insert(Uri.parse("content://sms/sent"), dummyValues);
// Create a new message entry
ContentValues mmsValues = new ContentValues();
mmsValues.put("thread_id", thread_id);
mmsValues.put("date", System.currentTimeMillis()/1000);
mmsValues.put("ct_t", "application/vnd.wap.multipart.related"); …Run Code Online (Sandbox Code Playgroud) 我想在Java中创建一个join.me.
我已经制作了屏幕截图部分,但现在我想通过拖动鼠标滚动图像.
这是我制作的屏幕:

首先,我想通过鼠标拖动图像来替换滚动条.可能吗?然后我想删除那些滚动条.
今天,用户可以更改缩放并使用鼠标滚轮进行放大/缩小.
你可以帮帮我吗?
谢谢.
编辑:我找到了隐藏滚动条的方法:
this.jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
this.jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
Run Code Online (Sandbox Code Playgroud) 我正在努力了解Postgresql处理方式JSON.我已经声明了一个双列表,我想创建一个新的View以获得一些布尔值.
到目前为止,我已经能够将值作为文本获取,但我想得到的是字段是否已定义.例如,如果JSON有键frameMenuData.frameElement,则应打印has_frame为true.
SELECT
customer_data->>'frameMenuData'->>'frameElement' AS has_frame,
FROM
simple_list
WHERE
TRUE
AND guid='AAAA';
Run Code Online (Sandbox Code Playgroud)
上面的代码给了我那行的内容.我需要知道是否customer_data->>'frameMenuData'->>'frameElement'定义.
我怎么能实现这一目标?
谢谢你的帮助.
我正在尝试为Windows应用程序制作一个自动登山者.它效果很好,但速度非常慢!我目前正在使用方法"getPixel",每次调用时都会重新加载一个数组.
这是我目前的代码:
hdc = GetDC(HWND_DESKTOP);
bx = GetSystemMetrics(SM_CXSCREEN);
by = GetSystemMetrics(SM_CYSCREEN);
start_bx = (bx/2) - (MAX_WIDTH/2);
start_by = (by/2) - (MAX_HEIGHT/2);
end_bx = (bx/2) + (MAX_WIDTH/2);
end_by = (by/2) + (MAX_HEIGHT/2);
for(y=start_by; y<end_by; y+=10)
{
for(x=start_bx; x<end_bx; x+=10)
{
pixel = GetPixel(*hdc, x, y);
if(pixel==RGB(255, 0, 0))
{
SetCursorPos(x,y);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
Sleep(50);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
Sleep(25);
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以基本上,它只扫描屏幕中的一系列像素,并在检测到红色按钮时启动鼠标事件.
我知道还有其他方法可以获得像素颜色,例如bitblt.但是我做了一些研究,我不明白我应该怎么做,以便扫描一个颜色数组.我需要能够快速扫描屏幕的东西才能抓住按钮.
请你帮助我好吗?
谢谢.
我正在使用Android Renderscript本机库,但导出时我的*.so文件没有打包APK.
当我运行它时,该应用程序运行正常,Eclipse但这显然是APK文件的包问题:
Caused by: android.support.v8.renderscript.r: Error loading RS jni library: java.lang.UnsatisfiedLinkError: unknown failure
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能添加*.so文件APK?