Articles of java

在Java中通过UDP发送C ++结构

我是一名C ++程序员,需要在Java android应用程序和PC上运行的C ++服务器之间建立一些UDP通信。 我有需要在PC上接收的结构,包括以下内容: int int float 不幸的是,我完全不知道如何用Java做到这一点。 我需要创建一个DatagramPacket,但构造函数只需要一个字节数组。 现在使用C ++,这将是一个从结构到char *的简单转换。 但是使用Java无法实现这样的渲染。 我创建了一个包含上述字段的简单类。 这似乎很好。 我剩下的问题是如何将其转换为字节数组。 任何人都可以在这方面帮助Java noob吗? 干杯! 编辑:我在类中创建了一个执行以下操作的函数 public byte[] GetBytes() throws IOException { ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); DataOutputStream dataOut = new DataOutputStream( byteOut ); dataOut.writeInt( Integer.reverseBytes( int1) ); dataOut.writeInt( Integer.reverseBytes( int2 ) ); dataOut.writeFloat( float1 ); return byteOut.toByteArray(); } 有一个更好的方法吗? […]

在Python上使用zlib.compress,在Java(Android)上兼容Deflater.deflate吗?

我正在将一个Python应用程序移植到Android,并且在某些时候,该应用程序必须与Web服务通信,并向其发送压缩数据。 为此,它使用下一个方法: def stuff(self, data): “Convert into UTF-8 and compress.” return zlib.compress(simplejson.dumps(data)) 我正在使用下一个方法尝试在Android中模拟此行为: private String compressString(String stringToCompress) { Log.i(TAG, “Compressing String ” + stringToCompress); byte[] input = stringToCompress.getBytes(); // Create the compressor with highest level of compression Deflater compressor = new Deflater(); //compressor.setLevel(Deflater.BEST_COMPRESSION); // Give the compressor the data to compress compressor.setInput(input); compressor.finish(); // Create […]

如何将Button对齐,而不会被TextView重叠?

我想要得到这样的东西: http : //img202.imageshack.us/img202/552/layoutoy.png 。 我使用它作为列表项(技术上作为ExpandableListView的组视图)。 这是XML文件: 但这不起作用。 Button不会包装其内容,而是使用所有可用的水平空间。 TextView 确实包装了它的内容,但我想要它做的是在它与Button重叠时切断它。 换句话说,无论textview中的文本量如何,我都希望所有按钮具有相同的宽度。 这是可能吗?

SQLite中的土耳其字符在使用LIKEexpression式时

select *from urunler where musteri like %ir%; 测试数据: +—musteri—+—ID–+ +————-+——-+ +—İrem——+—1—+ +—Kadir—–+—2—+ +—Demir—–+—3—+ 返回结果: Kadir Demir 如果使用%İr%然后İrem正在返回但是Kadir和Demir没有返回。 其他土耳其人的角色也有同样的问题,但没有任何确切的解决方案。 我正在编程单声道android。 [SQLiteFunction(Name = “TOUPPER”, Arguments = 1, FuncType = FunctionType.Scalar)] public class TOUPPER: SQLiteFunction { public override object Invoke(object[] args) { return args[0].ToString().ToUpper(); } } [SQLiteFunction(Name = “COLLATION_CASE_INSENSITIVE”, FuncType = FunctionType.Collation)] class CollationCaseInsensitive : SQLiteFunction { public […]

Switch Case错误。 适用于Mac的Android开发的Eclipse IDE:将工作区合规性更改为JRE 1.7

当尝试使用带有开关(字符串)的Switch Case进行android项目时,我在eclipse IDE中遇到错误说:将工作区符合性更改为JRE1.7 如果源级别低于1.7,则无法为Stringtypes的值打开。 只允许使用可转换的int值或枚举常量 当我将项目属性更改为1.7时,我得到不同的错误说: Android需要编译器合规性级别5.0或6.0。 find’1.7’而不是。 请使用Android工具>修复项目属性 我不想将所有配置字符串更改为ENUMS。 我还有其他选择吗? 我的环境:Eclipse SDK,版本:3.7.2,构建ID:M20120208-0800操作系统:Mac SnowLeopard(10.6.8)

Android – 如何从JavaScript运行intent

我是Android和Java的新手。 我使用HTML / Javascript构建了一个应用程序很好的应用程序。 我现在需要创建一个启动电子邮件客户端的活动,填写主题和正文,并且(困难的部分)添加文件附件。 我无法在JavaScript中执行此操作, mailto:不会附加文件。 所以我需要通过Java完成这个并从JavaScript执行它。 我认为这可以通过使用addJavaScriptInterface来完成,但我找不到任何详细的文档或示例。 我怎么能这样做? 以下是我阅读文档后到目前为止的内容: 第二次更新代码: MainActivity.java public class MainActivity extends DroidGap { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setIntegerProperty( “splashscreen”, R.drawable.splash ); super.loadUrl(“file:///android_asset/www/index.html”, 1000); WebView mWebView; mWebView = (WebView)findViewById(R.id.webview); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.addJavascriptInterface(new JavaScriptInterface(), “Android”); } } JavaScriptInterface.java public class JavaScriptInterface { public void doEmail(){ Intent sendIntent = new […]

用大量数据创建android app数据库

我的应用程序的数据库需要填充大量数据,因此在onCreate()期间,它不仅是一些create table sql指令,还有很多插入。 我选择的解决方案是将所有这些指令存储在res / raw的sql文件中,并加载了Resources.openRawResource(id) 。 它运行良好,但我面对编码问题,我在sql文件中有一些突出的caharacters,在我的应用程序中看起来很糟糕。 这是我的代码: public String getFileContent(Resources resources, int rawId) throws IOException { InputStream is = resources.openRawResource(rawId); int size = is.available(); // Read the entire asset into a local byte buffer. byte[] buffer = new byte[size]; is.read(buffer); is.close(); // Convert the buffer into a string. return new String(buffer); } public […]

检查Android中的应用程序内订阅状态

我创建了一个应用程序,其中有应用内购买,每月自动续订..在第一次成功付款时,我已经调用了一个网络服务,我已经让用户进入高级课程。 现在,如果用户已从谷歌服务器手动取消付款,我怎么知道该用户已取消他/她的订阅。 是否有一些PHP代码查询或从Android我必须在后台调用一些东西来检查状态? 谢谢你的推荐

带私有jre / jdk的Android Studio IDE? OSX

我正在运行OSX 10.8并尝试使用私有jdk运行Android Studio应用程序包,而不是全局安装的。 编辑:我没有全局访问的任何Java安装。 我以前通过编辑plist.info文件并通过eclipse.ini文件指定我想要使用的JRE / JDK,在Eclipse中成功完成了这项工作。 我还没有find关于如何使用Android Studio执行此操作的魔力。 编辑plist文件失败后,我打开了一个终端并将JDK / bin目录添加到PATH并设置了一个JAVA_HOME,但这还不足以让idea_applauncherfind我指定的Java安装。 我不确定我还能尝试做到这一点。 有任何想法吗? 编辑:我没有足够的代表来发布截图,但低于该输出的命令行。 当我尝试运行捆绑包时,我得到一个popup窗口,说明没有安装JDK,它有两个按钮,要求我“安装”或“不立即” $ ./idea_appLauncher 没有Java运行时,请求安装。

基于LinearLayout创建自定义组件,以XML格式声明布局

我一直在尝试在Android 1.5中创建一个复合控件(如此处所述 ),但是没有find任何关于如何使用XML文件来指定布局的好例子。 我可以创建一个Activity,然后在构造函数中使用以下代码加载xml文件: setContentView(R.layout.main); 但是,我想在LinearLayout的子类中执行此操作 – 因此我可以在其他XML布局中使用此复合组件。 有点像: public class CustomView extends LinearLayout { public CustomView(Context context) { super(context); setupView(); } public CustomView(Context context, AttributeSet attrs) { super(context, attrs); setupView(); } public void setupView() { setContentView(R.layout.custom); // Not possible } } 这样做的正确方法是什么?