我有一个textview,如下所示:
txtByRegistering.setText("By Registering you agree to terms and condition and privacy policy");
Run Code Online (Sandbox Code Playgroud)
这只是一个大文本.所以,我用marquee水平滚动文本.工作正常.我的问题是,如何在单击选定的滚动文本时调用click事件.
说出来:
"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)
上面的代码工作正常,当我点击"条款"这个词时它会把我带到浏览器但是我希望转到新的活动.
我有一个包含三个模块的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).但为什么?
为什么gradle只在执行期间解析依赖关系?(即为什么我会为每个 gradle任务看到这个错误?)
在执行此自定义任务之前,如何告诉gradle构建core.jar ?
让我详细解释一下; 我有通知,此通知打开B activity两个案例.
案例:
情况1
我点击该通知,并将其打开B activity与case-1.当我press back想要去A activity杀人B activity.我B activity不再需要了.这里的一切都很简单,没有使用flags.当我打开B activity并从这里按两次后,它会继续A activity然后关闭app.我的麻烦在于,如果我打开app手机的导航按钮(不记得这个按钮的名称)应用程序正在打开B activity.那不是我的预期.我想打开A activity.不想再看B activity了.
案例2
我点击该通知,并将其打开B activity与case-2.当我press back我想要把A activity前面,而不会产生任何新的东西.如果我再次按下B activity,两次并关闭应用程序,然后再次从手机的导航按钮重新打开应用程序,想要打开应用程序A activity.
那么我怎么能正确地做到这一点,我试图使用flags(我已经阅读过文档),但无法得到工作.什么flags应该我使用当我打开B activity和onBackPress方法B activity去 …
是否可以获取用户和设备所在国家/地区的货币代码.我想将用户当前国家/地区的国家/地区代码设置为默认国家/地区.我们在android中有这个解决方案吗?
我正在研究从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中获取国家代码我如何为此制作代码请建议我.我试着用这个例子,但它不起作用.
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) 我想知道如何使用Firebase的ServerValue.TIMESTAMP方法,当我想在Firebase服务器上创建时间戳,然后将其检索到本地客户端时.
在Firebase指南中,只有javascript对此案例有更详细的描述,但我很难想到如何将其转换为我的Android应用程序.
提前致谢!
我有一个带有视频预览的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) 我尝试了很多方法,但它与工具栏和状态栏重叠。此外,它还提供了回按底部导航默认值。我添加了以下代码-
@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)
我需要创建一个带有白色边框并填充纯色(蓝色或灰色)的 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 按钮边框颜色中建议的已接受解决方案?. 但是没有用(没有添加边框)。
任何帮助将非常感激。
我有一个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)