如何使用Google Gson创建json对象?以下代码创建一个看起来像的json对象{"name":"john"}
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("name", "john");
Run Code Online (Sandbox Code Playgroud)
如何像这样创建一个jSon对象?
{"publisher":{"name":"john"}}
Run Code Online (Sandbox Code Playgroud) 在xml布局文件中声明片段的标准方法是
<LinearLayout ...>
<fragment class="com.example.SomeFragment"
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
其中SomeFragment是一个定义的java类
class SomeFragment extends Fragment {
...
}
Run Code Online (Sandbox Code Playgroud)
可以说,我有3个片段; fragment1,fragment2和fragment3.当用户启动应用程序时,我将它们显示为fragment1,当他们点击按钮时,我将fragment1替换为fragment2等.
在单个布局xml文件中定义3个片段的最佳方法是什么?
我有一个java应用程序运行得很好(在Ubuntu 10.04上)几个小时,直到它命中"java.net.SocketException:太多打开的文件".Sender.java的代码可以在这里找到
难道是因为我创造的一个新实例HttpPut,并HttpPost为每个线程?我正在使用apache-commons HTTPClient 4.
这是异常日志:
java.net.SocketException: Too many open files
at java.net.Socket.createImpl(Socket.java:414)
at java.net.Socket.connect(Socket.java:544)
at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:123)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:133)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:108)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554)
at com.marketplace.io.Sender.doBasicHttpPost(Sender.java:434)
at com.marketplace.io.Sender.appVisualExists(Sender.java:223)
at com.marketplace.io.Sender.addVisualToCollection(Sender.java:350)
at com.marketplace.service.ImageThread.run(ImageThread.java:136)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)
Run Code Online (Sandbox Code Playgroud) 我在检索安装的Android应用程序的图标时遇到了一些麻烦.以下代码返回所有应用程序的图标,但是,某些应用程序返回带有小图标(可能来自drawable - ldpi文件夹),而某些应用程序带有大图标.
List<PackageInfo> package = getPackageManager().getInstalledPackages(0);
for(PackageInfo p : package){
iApp.icon = p.applicationInfo.loadIcon(getPackageManager());
}
Run Code Online (Sandbox Code Playgroud)
我如何获得大小相同的图标,就像Android的"管理应用程序"部分一样?
我目前正在使用以下代码:
List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
Run Code Online (Sandbox Code Playgroud)
但它会返回由设备制造商和我安装的应用程序.如何限制它以便只返回我安装的应用程序?
android installed-applications android-package-managers android-applicationinfo
只是想知道,我是唯一一个遇到这种"奇怪"行为的人.
在我的活动中放置EditText并将其inputType ="textPassword"设置如下:
<EditText android:text="" android:id="@+id/EditText01"
android:hint="This is a hint" android:inputType="textPassword"
android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>
Run Code Online (Sandbox Code Playgroud)
提示在单词之间显示更大/双倍的空格.
如果我删除inputType属性,它将恢复正常.我找不到有关此行为的已知问题.
BTW-如果你想知道为什么这很重要(它不是那么多)尝试将两个EditText小部件一个放在另一个之下并将其中一个的inputType设置为"textpassword"它看起来不太好.有关如何更改密码或其他edittexts以使用相同格式的任何想法?
谢谢
PS.首先在这里添加了一个问题:http://groups.google.com/group/android-developers/browse_thread/thread/88738bb8d8046f6f,但我找不到答案.
当用户启动我的Android应用程序时,我会启动2个线程在后台进行一些处理.thread_1在客户端上进行一些计算,而thread_2从服务器获取一些数据.一切正常.没有线程修改UI.我有两个跟进问题.
new Thread(new Runnable(){
@Override
public void run(){
MyClass.someStaticVariable = doSomeCalculations();
}
}).start();
Run Code Online (Sandbox Code Playgroud)
从线程的run()方法检索数据的最佳实践是什么?我目前有一个静态变量,我将相关计算数据/获取数据分配给它.或者是否建议使用Handler类从线程中获取数据?我想如果他们想要更新UI,只使用处理程序.
while(true)
{
if (!thread1.isAlive() && !thread2.isAlive())
{
startActivity(intent)
}
}
Run Code Online (Sandbox Code Playgroud)我需要等到两个线程都完成后再通过Intent从两个线程传递数据.我怎样才能做到这一点?我可以使用上面显示的代码来完成它,但这似乎是错误的.
我正在尝试使用Spring LDAP(版本2.3.2)获取LDAP服务器上的所有条目.在我的代码中,我使用了PagedResultsDirContextProcessor对所有结果进行分页.这在支持的服务器上工作正常PagedResultsControl.
但是,我现在需要连接到不支持的LDAP服务器PagedResultsControl.如何在不使用的情况下获取所有条目PagedResultsControl?
我在java中有一个字节数组形式的图像.我正在尝试将该图像上传到我的Ruby on Rails应用程序,该应用程序使用了Paperclip gem.我的Rails模型如下所示:
class App < ActiveRecord::Base
has_attached_file :image
end
Run Code Online (Sandbox Code Playgroud)
当我执行java代码时,我得到了HHTTP/1.1 302 Found我的rails应用程序的响应.
更新了java HTTP-Post方法.
这是我用于HTTP-Post的新java代码:
public void postFile(byte[] image) throws ClientProtocolException, IOException{
HttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
HttpPost httppost = new HttpPost("http://localhost:3000/apps");
ContentBody cb = new ByteArrayBody(image, "image/jpg", "icon.jpg");
//ContentBody cb = new InputStreamBody(new ByteArrayInputStream(image), "image/jpg", "icon.jpg");
MultipartEntity mpentity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
mpentity.addPart("image", cb);
httppost.setEntity(mpentity);
HttpResponse response = httpclient.execute(httppost);
System.out.println(response.getStatusLine());
}
Run Code Online (Sandbox Code Playgroud)
这是rails控制台上的新调试:
Started POST "/apps" for 127.0.0.1 at Mon Jan 31 00:26:07 +0000 2011 …Run Code Online (Sandbox Code Playgroud)