我有一个列表视图的活动。 当用户点击该项目时,打开“查看器”项目: List1.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) { Intent nextScreen = new Intent(context,ServicesViewActivity.class); String[] Service = (String[])List1.getItemAtPosition(arg2); //Sending data to another Activity nextScreen.putExtra("data", datainfo); startActivityForResult(nextScreen,0); overridePendingTransition(R.anim.right_enter, R.anim.left_exit); } }); 这工作正常,但在操作栏上应用程序图标旁边的后退箭头不会被激活。 我错过了什么吗?
我正在寻找漂亮的方式来漂亮地打印Map 。 map.toString()给我: {key1=value1, key2=value2, key3=value3} 我想在我的地图项值更多的自由,我正在寻找更像这样的东西: key1="value1", key2="value2", key3="value3" 我写了这么一小段代码: StringBuilder sb = new StringBuilder(); Iterator<Entry<String, String>> iter = map.entrySet().iterator(); while (iter.hasNext()) { Entry<String, String> entry = iter.next(); sb.append(entry.getKey()); sb.append('=').append('"'); sb.append(entry.getValue()); sb.append('"'); if (iter.hasNext()) { sb.append(',').append(' '); } } return sb.toString(); 但我相信有一个更优雅和简洁的方式来做到这一点。
在我使用数据库的过程中,我注意到我写了查询string,在这个string中,我必须在list / array / collection的where子句中join一些限制。 应该是这样的: select * from customer where customer.id in (34, 26, …, 2); 你可以简化这个问题,把这个问题简化为你有string集合的问题,并且想用一个string创build一个以逗号分隔的string列表。 我迄今为止使用的方法是这样的: String result = ""; boolean first = true; for(String string : collectionOfStrings) { if(first) { result+=string; first=false; } else { result+=","+string; } } 但是,这是你可以看到非常丑陋的。 你不能看到第一次看到什么发生,特别是当构造的string(如每个SQL查询)变得越来越复杂。 你(更)优雅的方式是什么?
我正在为学校制作一个简单的video游戏程序,并且我已经创build了一个方法,如果该方法被调用,玩家可以获得15点生命值。 我必须把健康保持在100以下,而且我的编程能力有限,所以我正在做这样的事情。 public void getHealed(){ if(health <= 85) health += 15; else if(health == 86) health += 14; else if(health == 87) health += 13; }// this would continue so that I would never go over 100 我理解我的语法并不完美,但是我的问题是,有什么可能是更好的方式来做到这一点,因为我也必须用损坏点做类似的事情,不要低于0。 这被称为饱和algorithm 。
我有一个包含人名的stringarraylist names 。 我想按字母顺序排列数组列表。 ArrayList<String> names = new ArrayList<String>(); names.add("seetha"); names.add("sudhin"); names.add("Swetha"); names.add("Neethu"); names.add("ananya"); names.add("Athira"); names.add("bala"); names.add("Tony"); names.add("Karthika"); names.add("Nithin"); names.add("Vinod"); names.add("jeena"); Collections.sort(names); for(int i=0; i<names.size(); i++) System.out.println(names.get(i)); 我试图按照上面的方式对列表进行sorting。 但它正在显示sorting的数组: Athira Karthika .. .. ananya bala … 但我不想让它区分大小写。 我想要的结果是: ananya Athira bala
我正在开发networkingvideo接口论坛Java项目,并按照“ ONVIF应用程序员指南”中描述的步骤进行操作。 我已经从ONVIF网站提供的wsdls生成了源代码。 我可以使用media.wsdl检索实时streamURI。 现在我有一个logging问题。 我试过的代码如下: RecordingService recording_ervice = new RecordingService(); RecordingPort record_port = recording_ervice.getRecordingPort(); BindingProvider bindingProvider = (BindingProvider) record_port; // Add a security handler for the credentials final Binding binding = bindingProvider.getBinding(); List<Handler> handlerList = binding.getHandlerChain(); if (handlerList == null) { handlerList = new ArrayList<Handler>(); } handlerList.add(new RecordStream.SecurityHandler()); // binding.setHandlerChain(handlerList); // Set the actual […]
我熟悉C和C ++的语法是上下文敏感的 ,特别是你需要在C中使用“词法分析器”。另一方面,我的印象是,你可以只用Java来parsing尽pipe这两种语言之间有相当的相似性,但它们还是有前瞻性的。 你需要改变一些关于C来使它更容易parsing的东西? 我问,因为所有我看过的关于C语境的例子在技术上是可以允许的,但是很奇怪。 例如, foo (a); 可以用参数a调用void函数foo 。 或者,它可以被声明a footypes的一个对象,但是你可以轻松地摆脱这些缺点。 部分原因是由于C语法的“直接声明者”生成规则实现了声明函数和variables的双重目的,所以出现了这种怪异现象。 另一方面, Java语法对于variables声明和函数声明分别具有生产规则。 如果你写 foo a; 那么你知道这是一个variables声明,而且foo可以毫不含糊地被parsing为一个types名称。 如果foo类没有在当前作用域的某个地方被定义,那么这可能不是有效的代码,但是这是语义分析的一个工作,可以在稍后的编译器中执行。 我已经看到它说C因为typedef很难parsing,但是你也可以在Java中声明你自己的types。 除了direct_declarator之外,哪些C语法规则是错误的?
一个简单的问题:是否有可能在AsyncTask返回一个值? //AsyncTask is a member class private class MyTask extends AsyncTask<Void, Void, Void>{ protected Void doInBackground(Void… params) { //do stuff return null; } @Override protected void onPostExecute(Void result) { //do stuff //how to return a value to the calling method? } } 然后在我的Activity / Fragment : // The task is started from activity myTask.execute() // […]
我知道Java本身没有直接的等价物,但也许是第三方? 这真的很方便。 目前我想实现一个迭代器,它产生一个树中的所有节点,大约有五行代码和yield。
我有以下Java代码与几个大数组永远不会改变他们的大小。 它运行在我的电脑上1100毫秒。 我用C ++实现了相同的代码,并使用std::vector 。 运行完全相同代码的C ++实现的时间在我的计算机上为8800毫秒。 我做错了什么,以便它慢慢运行? 基本上,代码执行以下操作: for (int i = 0; i < numberOfCells; ++i) { h[i] = h[i] + 1; floodedCells[i] = !floodedCells[i]; floodedCellsTimeInterval[i] = !floodedCellsTimeInterval[i]; qInflow[i] = qInflow[i] + 1; } 它遍历大小约为20000的不同数组。 您可以在以下链接下find两个实现: Java: https : //ideone.com/R8KqjT C ++: https : //ideone.com/Lu7RpE (因为时间限制,我只能运行400次,而不是2000次),但是即使在这里也有三次的差别)