小编Viv*_*rai的帖子

如何为单个textview设置多个单击事件?

我有一个textview,如下所示:

txtByRegistering.setText("By Registering you agree to terms and condition and privacy policy");
Run Code Online (Sandbox Code Playgroud)

这只是一个大文本.所以,我用marquee水平滚动文本.工作正常.我的问题是,如何在单击选定的滚动文本时调用click事件.

说出来:

  1. 当用户在上面的textview中单击"注册"一词时,我必须调用新的Intent.
  2. 当用户单击该单词时"Terms",我必须调用另一个新的Intent(具有术语的webview活动URL Link).

由于"注册"和"术语"这个词是Web URL,我尝试过如下所示:

    String mRegDesc = "By registering you agree to the " + "<a href=\""
            + Constant.URL + "/terms_and_conditions"
            + "\">Terms of Use</a> " + "and " + "<a href=\"" + Constant.URL
            + "/privacy" + "\">Privacy Policy</a> ";

    txtByRegistering.setText(Html.fromHtml(mRegDesc));
    txtByRegistering.setMovementMethod(LinkMovementMethod.getInstance());
    txtByRegistering.setSelected(true);
    txtByRegistering.setTypeface(mTyFaceOverLockReg, Typeface.BOLD);
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,当我点击"条款"这个词时它会把我带到浏览器但是我希望转到新的活动.

string android dynamic textview clickablespan

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

执行自定义任务时,Gradle无法找到模块的输出jar

我有一个包含三个模块的Gradle项目,每个模块都对下一个模块具有嵌套依赖性:

android app module, which depends on...
   android lib module, which depends on ...
      java lib module (called core)
Run Code Online (Sandbox Code Playgroud)

在我的lib模块中,我正在尝试创建一个自定义任务(生成javadoc,但这可能不相关)

库/的build.gradle:

apply plugin: 'com.android.library'

android {
    ...
}

android.libraryVariants.all { variant ->
    task("${variant.name}Docs", type: Javadoc) {
        failOnError true
        source = variant.javaCompiler.source
        classpath = files(((Object) android.bootClasspath.join(File.pathSeparator)))
        classpath += files(variant.javaCompiler.classpath.files) // THIS LINE IS CAUSING ERROR
    }
}

dependencies {
    implementation project(':core')
    ...
}
Run Code Online (Sandbox Code Playgroud)

问题是当我运行任何Gradle任务(甚至是Gradle clean)时,我收到一个关于找不到core.jar的错误

org.gradle.api.ProjectConfigurationException:配置项目':library'时出现问题.

引起:org.gradle.api.artifacts.transform.ArtifactTransformException:无法使用转换JarTransform转换文件'core.jar'以匹配属性{artifactType = android-classes}

引起:org.gradle.api.InvalidUserDataException:转换输出文件******/core/build/libs/core.jar不存在.

我猜这种情况正在发生,因为Gradle在配置阶段正在寻找所需的所有文件库的类路径(包括core.jar).但为什么?

  1. 为什么gradle只在执行期间解析依赖关系?(即为什么我会为每个 gradle任务看到这个错误?)

  2. 执行此自定义任务之前,如何告诉gradle构建core.jar ?

java dependencies android jar gradle

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

如果活动正在运行或者使用backpress创建新活动,请将活动放在前面

让我详细解释一下; 我有通知,此通知打开B activity两个案例.

案例:

  1. 如果应用已关闭.(不在后台运行)
  2. 如果应用程序打开.(背景或正面)

情况1

我点击该通知,并将其打开B activitycase-1.当我press back想要去A activity杀人B activity.我B activity不再需要了.这里的一切都很简单,没有使用flags.当我打开B activity并从这里按两次后,它会继续A activity然后关闭app.我的麻烦在于,如果我打开app手机的导航按钮(不记得这个按钮的名称)应用程序正在打开B activity.那不是我的预期.我想打开A activity.不想再看B activity了.

案例2

我点击该通知,并将其打开B activitycase-2.当我press back我想要把A activity前面,而不会产生任何新的东西.如果我再次按下B activity,两次并关闭应用程序,然后再次从手机的导航按钮重新打开应用程序,想要打开应用程序A activity.

那么我怎么能正确地做到这一点,我试图使用flags(我已经阅读过文档),但无法得到工作.什么flags应该我使用当我打开B activityonBackPress方法B activity去 …

java stack android android-intent android-activity

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

Android是否可以获取用户和设备所在国家/地区的货币代码?

是否可以获取用户和设备所在国家/地区的货币代码.我想将用户当前国家/地区的国家/地区代码设置为默认国家/地区.我们在android中有这个解决方案吗?

java android currency

7
推荐指数
2
解决办法
8580
查看次数

如何从防止嗅探的应用程序中捕获数据包

我正在研究从Facebook安卓应用程序嗅探数据包.我想在社交网络上研究用户行为时使用嗅探数据.

我在过去两个月学到的是我必须创建一个vpn服务并用它来嗅探数据.互联网上有很多有用的代码,我试图理解和运行.我设法使用这些代码嗅探某些应用程序的数据,这些代码都使用相同的概念.

当使用上述代码中的每一个,并进行少量修改时,我设法捕获所有应用程序的数据包,但是对于像facebook这样的应用程序,vpnService使这些应用程序停止工作; 当我创建vpn服务并尝试评论帖子或进行任何需要在Facebook应用程序和Facebook服务器之间发送/接收数据的操作时,此操作不会发生; 看起来不知何故Facebook应用程序知道有人在嗅他.

在过去的两个月里,我一直在尝试在不破坏Facebook应用程序功能的情况下找到捕获Facebook应用程序包的方法.

我尝试在Android示例中按照KeyChain演示安装证书,但它不适用于我.

从我的搜索中,我知道/我确信有一些我缺少的东西; 我搜索的应用程序做了我想要完成的事情,而没有像facebook那样的应用程序检测它.我在Google Play上找到了LostNetNoRootFirewall.

使用LostNetNoRootFirewall,我设法创建了一个vpn服务并嗅探数据包,而facebook应用程序就像一个魅力!

我的问题

我应该向我的应用程序添加什么才能创建一个vpnService并阻止像facebook这样的应用程序检测到我的服务正在嗅探它的数据包?

我正在处理的当前代码.[原始来源]

package com.git.firewall;

public class GITVpnService extends VpnService implements Handler.Callback, Runnable {
    private static final String TAG = "GITVpnService";

    private String mServerAddress = "127.0.0.1";
    private int mServerPort = 55555;
    private PendingIntent mConfigureIntent;

    private Handler mHandler;
    private Thread mThread;

    private ParcelFileDescriptor mInterface;

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // The handler is …
Run Code Online (Sandbox Code Playgroud)

java networking android android-vpn-service

7
推荐指数
0
解决办法
632
查看次数

如果我们在数据库中只有国家代码,则获取货币代码

我有问题获得国家货币,我通过这些代码在数据库中有国家代码我必须在java中获取国家代码我如何为此制作代码请建议我.我试着用这个例子,但它不起作用.

    class Utils {
    public static SortedMap<Currency, Locale> currencyLocaleMap;
    static {
        currencyLocaleMap = new TreeMap<Currency, Locale>(
                new Comparator<Currency>() {
                    public int compare(Currency c1, Currency c2) {
                        return c1.getCurrencyCode().compareTo(
                                c2.getCurrencyCode());
                    }
                });
        for (Locale locale : Locale.getAvailableLocales()) {
            try {
                Currency currency = Currency.getInstance(locale);
                currencyLocaleMap.put(currency, locale);
            } catch (Exception e) {
            }
        }
    }

    public static String getCurrencySymbol(String currencyCode) {
        Currency currency = Currency.getInstance(currencyCode);
        System.out.println(currencyCode + ":-"
                + currency.getSymbol(currencyLocaleMap.get(currency)));
        return currency.getSymbol(currencyLocaleMap.get(currency));
    }
}

  public class GetCurrency {
    public static void main(String[] …
Run Code Online (Sandbox Code Playgroud)

java android currency

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

在发送数据时,从Android应用中的Firebase检索ServerValue.Timestamp

我想知道如何使用Firebase的ServerValue.TIMESTAMP方法,当我想在Firebase服务器上创建时间戳,然后将其检索到本地客户端时.

在Firebase指南中,只有javascript对此案例有更详细的描述,但我很难想到如何将其转换为我的Android应用程序.

提前致谢!

java android timestamp chat firebase

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

通过AdapterPosition获取RecyclerView的视图

我有一个带有视频预览的RecyclerView.当用户滚动时,视频应自动在用户可见的recyclerView项目上播放(当滚动状态为IDLE时).

所以我编写了一个自定义的onScrollListener,它将用户可见的位置作为数组传递给方法startVideosOn(int[] positions).

但问题是当我想通过位置获取View时(位置等于适配器位置).当我尝试linearLayoutManager.getChildAt(index),我得到null显示第三项目时,因为RecyclerView只有2名儿童,将被回收.

那么如何View通过适配器位置设法获得RecyclerView?

编辑,这是OnScrollListener:

public abstract class AutoPlayRecyclerOnScrollListener extends RecyclerView.OnScrollListener {

    LinearLayoutManager linearLayoutManager;

    public AutoPlayRecyclerOnScrollListener(LinearLayoutManager linearLayoutManager) {
        this.linearLayoutManager = linearLayoutManager;
    }

    @Override
    public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
        super.onScrollStateChanged(recyclerView, newState);

        if (newState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
            int firstVisibleItemPosition = linearLayoutManager.findFirstVisibleItemPosition();
            int lastVisibleItemPosition = linearLayoutManager.findLastVisibleItemPosition();

            if (firstVisibleItemPosition != -1 && lastVisibleItemPosition != -1) {
                playOn(firstVisibleItemPosition, lastVisibleItemPosition);
            }
        }
    }

    private void playOn(int lower, int upper) {
        int[] completelyVisibleItems = new int[upper …
Run Code Online (Sandbox Code Playgroud)

java android view android-adapter android-recyclerview

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

如何在textview的不同单词上设置多个单击侦听器?

Facebook应用程序是如何做到的.一个textView中的多个可单击文本.

我尝试了FlowLayout和多个texviews,但是当文本超出宽度时,texview仍会转移到另一行. 一个texview中的多个可点击文本

string android dynamic textview clickablespan

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

如何设置与操作栏相同的渐变可绘制状态栏?

我尝试了很多方法,但它与工具栏和状态栏重叠。此外,它还提供了回按底部导航默认值。我添加了以下代码-

 @Override
  protected void onCreate(@Nullable Bundle savedInstanceState) {
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
  Window w = getWindow();  w.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);//allow window to extend outside of the screen.
            w.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);// override FLAG_FULLSCREEN and force the screen decorations (such as the status bar) to be shown.         w.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_ATTACHED_IN_DECOR);            w.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);           w.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        }
        super.onCreate(savedInstanceState);

    }
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

android gradient statusbar drawable

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

FloatingActionButton 的白色边框

我需要创建一个带有白色边框并填充纯色(蓝色或灰色)的 FAB。

xml

<android.support.design.widget.FloatingActionButton
        android:id="@+id/myFab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"/>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我尝试了如何更改 android 设计支持库 FAB 按钮边框颜色中建议的已接受解决方案. 但是没有用(没有添加边框)。

任何帮助将非常感激。

xml android android-layout floating-action-button

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

片段中的YouTubePlayerSupportFragment

我有一个MenuActivity,在MenuActivity我有一个SeguridadMenuFrament,在SeguridadMenuFrament我有SeguridadFragment。在SeguridadFrament我需要的工具YoutubePlayer

在我的 fragment_seguridad.xml

    <?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <TextView
    android:id="@+id/tvTitle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/TR_CARACTERISTICAS"
    android:textSize="@dimen/text_14"
    android:layout_marginTop="20dp"/>

    <TextView
    android:id="@+id/tvCaracteristicas"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="@dimen/text_12"
        app:layout_constraintTop_toBottomOf="@id/tvTitle"
    android:layout_marginTop="20dp"/>

    <fragment
        android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment"
        android:id="@+id/youtubePF"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        app:layout_constraintTop_toBottomOf="@id/tvCaracteristicas"/>


</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

在SeguridadFragment.java中

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    rootView = inflater.inflate(R.layout.fragment_seguridad, container, false);

    mYoutubePlayerFragment = new YouTubePlayerSupportFragment();
    mYoutubePlayerFragment.initialize(YoutubeDeveloperKey, new YouTubePlayer.OnInitializedListener() {
        @Override
        public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
            if (!b) {
                youTubePlayer.cueVideo("NMwE93GQcKs"); …
Run Code Online (Sandbox Code Playgroud)

java youtube android fragment android-fragments

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