Articles of java的

在JSONObject中填充引号

我正在构建一个JSON字符串以发送到我的Web服务。 由于其中一个是用户输入的,因此可以使用双引号。 我试图逃避它来解决这个问题。 String strValue = “height of 6\””; JSONObject json = new JSONObject(); json.put(“key”, strValue.replaceAll(“\””,”\\\””)); 这里的问题是当我执行json.toString() ,我得到3个斜杠。 例如: {“key”,”height of 6\\\””} 如果我不尝试替换, json.toString()会给我打破json。 例如: {“key”, “height of 6″”} 我该怎么做才能正确? 注意:当我的网站保存此值并显示它时,它显示height of 6\” 更新: 看来罪魁祸首是json.toString() 当我调用replaceAll方法时 – 正确 – 只能转义双引号。 看来json.toString()转义斜杠。 要解决这个问题,我必须做json.toString().replace(“\\\\”, “”) 。 这引出了一个问题:为什么在地球上JSONObject会转义斜线而不是双引号?????

validationandroid中的函数前置条件

通常在编写公共方法时,我会进行一些错误检查,例如 public SomeResult processSomething (int i, List items) { if( i < 0 ) { throw new IllegalArgumentException(); } if(items == null) { throw new NullPointerException(); } etc } 在android编程中,这是什么标准方法? 我注意到当一个片段崩溃时,模拟器会转到上一个片段,所以从显示给用户的行为我觉得没问题。 但是,处理exception/错误条件的最佳方法是什么?

使用AsyncTask时如何处理HTTP响应代码?

我正在创建一个Android应用程序,它接受用户输入,尝试使用指定的输入建立与API URL的连接并检索数据并显示它。 现在我已经能够完成上述所有工作,但是如果用户输入某些东西并且它不存在,我的应用程序可能会因为NPE(空指针exception)而崩溃。 我使用的API向我显示了可能发生的响应错误列表,但我不确定如何处理或实现将这些响应错误考虑在内的function。 目前我的扩展AsyncTask类有以下参数: String,Void,JSONObject和以下代码是我在doInBackground方法中的代码。 URL url = new URL(params[0]); urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod(“GET”); urlConnection.connect(); int statusCode = urlConnection.getResponseCode(); switch (statusCode) { case 400: return “Error 400 – Bad request.”; case 401: return “Error 401 – Unauthorized request.”; } 我无法返回一个String,因为我的AsyncTask参数返回一个JSONObject。 我可以改变它,所以它确实返回一个字符串,但我认为这不是处理响应错误的正确逻辑方式。 现在,如果API响应代码是404(找不到数据),我不希望应用程序崩溃,因为它无法返回JSONObject,而是我希望它继续下一个片段并显示最少的信息。 那么当我的方法返回JSONObject时,如何处理响应错误呢?

Java Android – 在ImageView中裁剪图像

我知道这应该很简单,但android:scaleType=”centerCrop”不会裁剪图像 我得到1950像素宽的图像,需要按父母的宽度裁剪。 但android:scaleType=”centerCrop”裁剪图像。 在布局中我需要做什么才能显示前400个像素 ,例如,或任何屏幕/父宽度 对不起,简单的问题 – 尝试google它 – 只有复杂的问题。 我是新人,所以不要downvote plz)

Android位置getBearing()始终返回0

我一直在尝试为我的Android应用程序实现一项function,无论设备指向何处,都可以获得设备的移动速度和方向。 例如:如果我的Android设备指向北方向,如果我向南方向向后移动,则返回我正在向南移动。 我一直在环顾四周,我想出了使用Location的getBearing()方法的可能性(仍然,我不知道这是否能解决我的整个问题)。 当我调用getBearing()时,由于某种原因它总是返回0.0。 我不知道为什么。 这是我的代码: LocationManager lm; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_gcm); setUpUI(findViewById(R.id.LinearLayout1)); isRegged = false; // GCM startup gcm = GoogleCloudMessaging.getInstance(this); context = getApplicationContext(); gps = new GPSTracker(context); // gps.startListening(context); // gps.setGpsCall(this); /* * Variables to indicate location and device ID */ TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); if (gps.getIsGPSTrackingEnabled()) { […]

HTTPPost multipart(上传文件)从Java到Python webapp2

我正在尝试将文件上传到GAE – 服务器端代码: class UploadHandler(blobstore_handlers.BlobstoreUploadHandler): def post(self): upload_files = self.get_uploads(‘file’) blob_info = upload_files[0] # When using flask, request.files[0] gives correct output. self.response.out.write(‘/serve/%s’ % blob_info.key()) 使用HTML,我可以让它工作: upload_url = blobstore.create_upload_url(‘/upload’) self.response.out.write(”) self.response.out.write(” % upload_url) self.response.out.write(“””Upload File: “””) 但我必须能够从Java执行多部分发布请求。 我有一个在openshift (flask, request.files[0] )托管的烧瓶项目,其中Java代码似乎工作: HttpParams params = new BasicHttpParams(); params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); DefaultHttpClient mHttpClient = new DefaultHttpClient(params); HttpPost httppost = […]

如何使用FFT从数据arrays中滤除50Hz的噪声?

假设我有像这样的心电图数据arrays http://joachim.behar.perso.neuf.fr/Joachim/ECG_tuto_1/ECG_filters_basics/ecg_sample.txt 我需要使用这样的算法过滤50Hz的噪音 http://joachim.behar.perso.neuf.fr/Joachim/ECG_tuto_1/ECG_filters_basics/notch_filter.m 结果应该是如图2所示 (红色过滤,蓝色 – 未过滤): 在Java / android中执行此操作的最佳方法是什么? 这个图书馆会帮助https://sites.google.com/site/piotrwendykier/software/jtransforms吗? 谢谢! )

Android Parse JSON卡在get任务上

我试图解析一些JSON数据。 我的代码工作了一段时间,我不知道我改变了什么突然破坏了代码。 当我运行我的代码时,我没有收到任何运行时错误或警告。 我创建一个新的AsyncTask并执行它。 当我在这个新任务上调用.get()时,调试器在这一行停止并花费超过30分钟。 我无法获得调试器或在运行期间完成此任务。 JSON: protected void setUp(Context context) { _context = context; getConfig(); } // get config file protected void getConfig() { if (config != null) return; config = new Config(); String url = configURL; AsyncTask jsonTask = new DownloadJSONTask() .execute(url); JSONObject configItem = null; try { configItem = jsonTask.get(); //debugger pauses […]

Eclipse – 我应该在导出APK之前清理项目吗?

经过几次深夜的调试噩梦之后,每次我要导出一个签名/未签名的.APK上传到App Store时,我都会陷入日常生活中点击“Project – > Clean …”的偏执习惯。 。 我只能假设,在遥远的过去的某个时间,它似乎是调试一些外部JAR或其他方面的必要保障。 这为整个导出过程增加了几个繁琐的时间,特别是对于多个构建和/或应用程序。 这是一个必要的步骤,还是只是偏执狂?

在使用SAX进行解析时,如何保留未绑定到对象的XML节点

我正在开发一个与蓝牙相机接口的Android应用程序。 对于存储在相机上的每个剪辑,我们在XML文件中存储关于剪辑的一些字段(其中一些用户可以更改)。 目前,这个应用程序是唯一一个将此xml数据写入设备的应用程序,但将来有可能桌面应用程序或iphone应用程序也可能在此处写入数据。 我不想假设另一个应用程序也没有其他字段(特别是如果他们有一个更新版本的应用程序添加了此版本尚不支持的新字段)。 所以我想要防止的是我们在另一个应用程序中向这个XML文件添加新字段的情况,然后用户开始使用android应用程序并清除其他字段,因为它不知道它们。 让我们假设一个例子: My Title 12/24/2012 Blah 当从设备读取时,这将被转换为看起来像这样的Clip对象(简化为简洁起见) public class Clip { public String title, category; public Date date; } 所以我使用SAX来解析数据并将其存储到Clip中。 我只是将字符存储在StringBuilder中,当我到达标题,类别和日期的结束元素时将它们写出来。 我意识到,当我将这些数据写回设备时,如果原始文档中还有其他标签,则它们不会被写入,因为我只写出我所知道的字段。 这让我觉得SAX可能是错误的选择,也许我应该使用DOM或其​​他东西,我可以更容易地写出最初存在的任何其他元素。 或者我想也许我的Clip类包含一些通用XMLtypes(可能是DOM)的ArrayList,并且在startTag中我检查该元素是否不是预定义标记之一,如果是,直到我到达该标记的末尾我存储整个结构(但在什么?)..然后在写回来时,我将浏览所有其他标签并将它们写出到xml文件(以及我当然知道的字段) 这是一个众所周知的解决方案的常见问题吗? – 更新5/22/12 – 我没有在实际的xml中提到根节点(实际上称为注释),我们使用的版本号已设置为1.我将要做的短期内要求我的应用程序的版本号支持是> = xml数据的版本号是什么。 如果xml是一个更大的数字,我将尝试解析回读,但将拒绝对模型的任何保存。 关于如何做到这一点,我仍然对任何工作实例感兴趣。 顺便说一下,我想到了另一个应该非常简单的解决方案。 我想我可以使用XPATH查找我知道的节点,并在更新数据时替换这些节点的内容。 但是我运行了一些基准测试,当解析xml到内存中时,开销是荒谬的。 只是解析操作甚至没有进行任何查找导致性能比SAX差20倍。使用xpath一般来说解析速度慢30-50倍,考虑到我在列表视图中解析它们,这真的很糟糕。 所以我的想法是让SAX将节点解析为剪辑,但是将整个XML存储在Clip类的variables中(记住,这个xml很短,小于2kb)。 然后,当我将数据写回来时,我可以使用XPATH来替换原始XML中我知道的节点。 仍然对任何其他解决方案感兴趣。 除非它包含一些代码示例,否则我可能不会接受解决方案。