小编Amr*_*war的帖子

Android O转换为findViewById不再需要了吗?

我最近在Android Studio中更新了我的android SDK和构建工具到API 26,我直接注意到当我做这样的事情时,Android Studio将我的视图转换标记为"多余":

TextView itemName = (TextView) findViewById(R.id.menuItemName);
Run Code Online (Sandbox Code Playgroud)

经过一些研究,我发现自从SDK 26以来,findViewById使用Java 8功能返回相同的对象类型,但我想知道的是删除所有强制转换是否完全安全.这会在26之前导致Android上出现任何问题吗?有关这方面的任何更多信息将有所帮助,因为我在互联网上找不到太多.提前致谢.

java android android-studio

33
推荐指数
1
解决办法
6209
查看次数

用户名为Username tweepy

有人可以告诉我如何在tweepy上从一个id获取一个用户名?我到处寻找,找不到任何东西.

python twitter tweepy python-2.7

14
推荐指数
3
解决办法
2万
查看次数

Java反射处理库的更改

好的,我有一个Android应用程序,我开始为应用程序创建一个插件系统,以便开发人员可以编写应用程序可以用来生成不同内容的内容提供程序,我不会完成整个过程,但一切正常,如下所示:

1)我创建了一个名为com.myaddonlib我在我的项目中导入的库,在这个库中有一个接口和不同的对象.

2)现在开发人员可以在他的端创建一个简单的Java项目,导入库com.myaddonlib,并在他的主类上实现接口,该接口具有从库中返回不同对象的方法.

3)回到Android应用程序,我可以加载开发人员创建的.jar文件(在将classes.dex添加到jar文件之后)和android DexClassLoader我可以加载实现的界面,如下所示:

DexClassLoader classloader = new DexClassLoader(jarFilePath, tempDirectory, null, context.getClass().getClassLoader());     
Class classToLoad = classloader.loadClass("com.apackage.Addon");
Run Code Online (Sandbox Code Playgroud)

其中Addon是由addon开发人员创建的类,它从驻留在名为的包中的库实现接口com.apackage.然后我可以将接口从库com.myaddonlib转换为新的实例classToLoad并调用addon开发人员实现的函数.

现在问题就是我决定更新插件库并从类中删除其中一个变量,这意味着插件的类现在与更新库中的类(在应用程序中使用)不同.即使未使用更改的变量,也会导致应用程序崩溃而不会出现任何错误.事实上两个类都不同(即使唯一的区别只是一个缺失的变量)会导致某些故障.现在这不是一个简单的解释程序所以我会理解,鉴于我的英语不好,有些人会遇到麻烦.我的问题是我需要知道如何避免由于两端之一上的库更改而导致的崩溃.以及java如何在这种情况下处理对象更改

java reflection android dex

11
推荐指数
1
解决办法
380
查看次数

如何使用python将完整文件夹上传到Dropbox

我试图立即将整个文件夹上传到Dropbox,但我似乎无法完成它是否可能?即使我在尝试上传单个文件时,我必须在Dropbox路径中精确定位文件扩展名,还有其他方法吗?我正在使用的代码

client = dropbox.client.DropboxClient(access_token)
f= open(file_path)
response = client.put_file('/pass',f )
Run Code Online (Sandbox Code Playgroud)

但它不起作用

python python-2.7 dropbox-api

5
推荐指数
1
解决办法
3546
查看次数

tkinter 程序上的广告

我的问题是:是否可以在 tkinter 程序上投放广告,例如 google ads 等,因为我制作了一个程序,很多人开始使用,但我没有从中获得任何好处,有办法吗?

python tkinter python-2.7

5
推荐指数
1
解决办法
1535
查看次数

Android SeekBar 中不需要的填充

我在使用 Android 搜索栏时遇到问题,搜索栏视图似乎有默认填充,我似乎无法删除它,我尝试将填充设置为“0dp”并尝试将边距设置为“-10dp”以查看它是否删除了一些空间并尝试将背景设置为空,以防背景占用空间但似乎没有发生任何事情,SeekBar 标签是:

<SeekBar
    android:paddingLeft="0px"
    android:paddingRight="0px"
    android:background="@null"
    android:id="@+id/musicSeekBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)

编辑:好的,经过一些测试和尝试一些东西后我学到了这一点:

  1. 填充是由于拇指可绘制尺寸决定的
  2. 设置android:thumb="@null"将删除底部和顶部填充
  3. 即使我移除拇指,左右填充仍然保留,但可以通过在两侧设置负边距等于默认拇指可绘制宽度除以 2 来移除,因此如果其 32dp,则每侧为 16dp

现在我需要知道是否有更干净的方法来去除填充以及所有设备上的拇指尺寸是否相同?欢迎任何帮助。

android seekbar

5
推荐指数
2
解决办法
1万
查看次数

如何获得折叠工具栏布局的最大垂直偏移量

我目前有一个带有CollapsingToolbarLayout的AppBarLayout,我添加了一个OffSetChangeListener,所以当动作栏展开时我可以旋转我的appbar中的下拉箭头,现在一切正常,除了我需要最大垂直偏移才能计算度数旋转,它不作为参数在监听器中提供.这是我的代码:

appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
    @Override
    public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
        int slideOffset = verticalOffset*(-1);
        int slideOffsetMax = 750;

        int angle = slideOffset * 180 / slideOffsetMax;
        dropdownArrow.setRotation(angle);

    }

});
Run Code Online (Sandbox Code Playgroud)

问题是最大垂直偏移量取决于设备,但如果有人有其他方式实现这一点,请随时向我展示.ps:我将最大偏移量设置为750,因为我记录了偏移量以找到我的设备的最大值,但在我的平板电脑上却有所不同.

java android android-collapsingtoolbarlayout android-appbarlayout

3
推荐指数
1
解决办法
2011
查看次数

导入类或创建它的实例之间的区别

我在一个名为(tools)的java类中有一个子类(Item),我想在我的应用程序中的几个不同的类中使用我现在想知道的是什么是使用之间的区别

import com.example.tools;
Run Code Online (Sandbox Code Playgroud)

并创建该类的实例:

Tools item = new Tools();
Run Code Online (Sandbox Code Playgroud)

他们是否得到了相同的结果,并且比另一个慢,或者有一个原因我会使用一个而不是另一个.谢谢你的回答.

java android class

1
推荐指数
1
解决办法
122
查看次数