Articles of java的

如何用AndroidStudio删除Android软件包名称的一部分?

我有一个包含com.example.alexander.app等软件包名称的android项目,我想将其更改为只包含三个部分的名称,例如com.alexapps.firstapp 。 但是,在搜索了几个网站后,我仍然不知道如何在AndroidStudio(2.1.3)中这样做。 我find了以下答案,但没有完全回答我的问题: 答案1需要我找不到的文件R.java 通过使用AndroidStudio中的方法, 答案2看起来非常好。 不幸的是,即使在清理和重建项目之后,我的单个活动的包名也没有改变。 答案3 :我搜索了字符串,发现了1000多个提示! 因此,我没有继续使用此解决方案来替换超过1000次点击,因为这听起来不对。 我在这个测试应用程序中只有1个(一个!)单个活动… 答案4 :非常好的答案,但仅在您想要更改每个包名称部分时才有用(并且既不增加也不减少包名称中的部件数量)。 那么有没有办法用AndroidStudio删除包名的一部分?

Android日历问题与星期几

我想列出周一到周日当周的所有日子。 例如,今天(发布的那天)是2011年9月4日,也就是星期天。 我正在开始日历并将一周的第一天设置为星期一: Calendar cal = Calendar.getInstance(); cal.setFirstDayOfWeek(Calendar.MONDAY); 当我检查一个月中的某天时,我得到了正确的结果: int check = cal.get(Calendar.DAY_OF_MONTH); // check is equal to 4 但是,当我将工作日设置为星期一时,它会跳到下周,而不是在本周一返回: cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); int mon = cal.get(Calendar.DAY_OF_MONTH); // mon is equal to 5, when expected to be 29 (last Monday of August) 即使设定工作日到周日也会在下周日返回,而不是今天。 有人可以解释为什么它以这种方式工作,解决这个问题的最佳方法是什么?

我该如何处理AI线程和主游戏循环之间的通信?

我正在研究基于回合制的Java战略游戏(在Android框架中)。 按照Beginning Android Games中的结构,我有一个渲染线程和一个UI线程。 渲染线程重复更新世界状态,然后重绘世界。 当用户与屏幕交互时,GUI向世界发送动作(命令模式)。 现在我正在添加AI玩家,这是我的计划: 每个AI播放器都有一个在单独的线程上运行的AI。 当世界更新AI时,它会检查是否有待处理的操作。 如果是这样,它会执行它。 然后它要求AI播放器进行下一步操作。 AI播放器将向AI线程发送动作请求,然后返回。 最终,人工智能将提出一个动作,并将其发布回世界,它将在下次更新时看到它。 两个问题: 1)这个设计看起来好听吗? 2)如何处理与AI线程的通信? 如果我有AI线程调用world.queueAction(action),看起来它会起作用,但是如果渲染线程调用ai.chooseAction(world)将运行在渲染线程上选择的动作,这不是我想要的。

在Android上进行FTP上传和下载

我设置INTERNET_ACCESS等后出现此错误… private class AsyncUpload extends AsyncTask{ public void ftpUpload(){ FTPClient con = new FTPClient(); try { con.connect(“ftp.194.90.81.149”); //here i recieve exception //the exception is java.unknownhostexception //java.net.UnknownHostException: Unable to resolve host “ftp.194.90.81.149”: No address associated with hostname if (con.login(“username”, “password”)) { con.enterLocalPassiveMode(); String data = “test data”; ByteArrayInputStream in = new ByteArrayInputStream(data.getBytes()); boolean result = con.storeFile(“/test.jpg”, […]

资源ID的整数数组返回0

我有一组存储在数组中的资源ID。 这可以在回收器视图中访问以填充图像视图。 问题是当我访问数组时,返回的所有值都是0。 // arrays.xml @drawable/autumn @drawable/backpack // inside recycler view adapter int[] myIcons = getActivity().getResources().getIntArray(R.array.array_category_icons); myIcons[i] always returns 0. drawable只在hdpi文件夹中。

捕获空exception

我正在研究一个用于android的java应用程序,我现在遇到的问题是调试器正在进入我的catch块而且某种程度上ex为null? 以前有人见过这样的事吗? } catch(Exception ex) { // Debugger is coming through the catch block and ex is null ???? }

当兄弟滚动到达结尾时打开底部纸?

有没有办法将滚动事件从一个滚动视图“转发”到我的底部工作表,以便在我滚动第一个滚动视图时我的底部工作表开始展开? 考虑这个小应用程序: public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); int peekHeight = getResources().getDimensionPixelSize(R.dimen.bottom_sheet_peek_height); // 96dp View bottomSheet = findViewById(R.id.bottomSheet); BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet); behavior.setPeekHeight(peekHeight); } } 开箱即用,这很好用。 我看到96dp的底页价格,我可以像往常一样上下滑动。 另外,我可以看到我的滚动内容,我可以像往常一样上下滚动它。 让我们假设我处于第二张图片中显示的状态。 我的NestedScrollView一直滚动到底部,我的底部工作表已折叠。 我希望能够在NestedScrollView上向上滑动( 不在底部工作表上),并且由于它无法再滚动,所以请将滑动手势发送到底部工作表,以便它开始展开。 基本上,让应用程序的行为就好像我的手势已在底部工作表上执行,而不是滚动视图。 我的第一个想法是看看NestedScrollView.OnScrollChangeListener ,但是我无法让它工作,因为它停止在滚动内容的边界处被触发(毕竟,它会监听滚动更改 ,并且当你在处时没有任何改变边缘)。 我还看了一下创建我自己的BottomSheetBehavior子类并试图覆盖onInterceptTouchEvent() ,但在两个地方遇到了麻烦。 首先,我只想在兄弟滚动视图位于底部时捕获事件,我可以这样做,但我现在正在捕获所有事件(使得无法向后滚动兄弟)。 其次, BottomSheetBehavior的private字段mIgnoreEvents阻止底层实际扩展。 我可以使用reflection来访问这个字段并防止它阻挡我,但这感觉很邪恶。 编辑:我花了一些时间研究AppBarLayout.ScrollingViewBehavior ,因为它似乎非常接近我想要的(它将一个视图上的滑动转换为另一个视图上的调整),但这似乎是逐个像素地手动设置偏移,底部表格不那么好。

Android中的HashMap反序列化问题

我使用以下代码在我的PC应用程序上序列化HashMap: private void serialize(HashMap map2write, String name_ser) {// serializes fphlist into .ser file called name_ser FileOutputStream fileOut = null; try { fileOut = new FileOutputStream(project_dir + “/” + name_ser + “.ser”); } catch (FileNotFoundException ex) { Logger.getLogger(AdminConsoleUI.class.getName()).log(Level.SEVERE, null, ex); } ObjectOutputStream out; try { out = new ObjectOutputStream(fileOut); out.writeObject(map2write); out.reset(); out.flush(); out.close(); fileOut.close(); } catch […]

如何在Kotlin中声明原始types?

在Java中,我可以声明这一点 private List a; //onCreate a = new ArrayList() 但是在Kotlin它显示错误,它迫使我特定一种types private List a 有时我不想提供types(我不需要),但它在Kotlin中显示错误例如在Java中 public abstract class BaseActivity extends AppCompatActivity { //something } public abstract class BaseFragment { private BaseActivity activity; //something } //in kotkin I can’t write lateinit var activity: BaseAtivity //show error here (I have to specific a type but this is the […]

在同一个应用程序中使用TCP和UDP的任何问题?

我的问题是询问是否接受使用TCP和UDP在客户端和服务器之间进行通信。 我正在制作一个实时客户端服务器游戏,其中包含需要保证的部分通信(登录等),但其他部分可以丢失数据包(状态更新等)。 所以,我想在大多数数据通信中使用UDP,但我不想实现自己的框架,以确保我的控制通信(登录)得到保证。 那么,最初使用TCP来管理连接,然后在一个单独的端口上发送数据通信包是否合理?