我正在使用DoubleClick为我的Android应用设置广告,无法显示最终广告,有人可以帮助我吗?
当我通过添加".addTestDevice("xxx ...")测试广告时,"我收到了测试广告但是当我删除此行时,我收到以下错误:
W /广告:广告服务器无法填充
广告:无法加载广告:3
我像这样设置广告:
PublisherAdRequest adRequest = new PublisherAdRequest.Builder().build();
mPublisherAdView.loadAd(adRequest);
Run Code Online (Sandbox Code Playgroud)
我的publisherView看起来像这样:
<com.google.android.gms.ads.doubleclick.PublisherAdView
android:id="@+id/pronostics_ad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
ads:adSize="BANNER"
ads:adUnitId="@string/ad_unit_pronostic">
</com.google.android.gms.ads.doubleclick.PublisherAdView>
Run Code Online (Sandbox Code Playgroud)
可能有什么不对?
提前感谢你的答案.
我正在使用设计库提供的新类:TabLayout.我想在特定的情况下,我正在使用的那个不能再改变标签了.
我设法禁用其viewpager上的滑动,但我无法弄清楚如何通过单击选项卡禁用页面更改.
提前致谢.
我将项目迁移到AndroidX,在构建项目时遇到了这些错误:
[TAG] Failed to resolve variable '${project.groupId}'
[TAG] Failed to resolve variable '${project.version}'
[TAG] Failed to resolve variable '${project.groupId}'
[TAG] Failed to resolve variable '${project.version}'
[TAG] Failed to resolve variable '${project.groupId}'
[TAG] Failed to resolve variable '${project.version}'
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几种可能的解决方
enableJetifierfalse--refresh-dependencies编译器设置选项这是我的项目gradle文件:
buildscript {
repositories {
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
google()
maven {
url 'https://maven.fabric.io/public'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
classpath 'com.google.gms:google-services:4.0.0'
classpath 'io.fabric.tools:gradle:1.25.4'
}
}
allprojects { …Run Code Online (Sandbox Code Playgroud) 他们是通过使用ObservableList新的数据绑定库和MVVM模式中"notifyItem(s)..."的Adapter类来避免使用类中的方法吗?
或者如果不是什么可能是最简单的方法绑定ObservableList到RecyclerView?
谢谢你的任何线索!
data-binding android mvvm android-adapter android-recyclerview
我想将一个带有背景的EditText作为"普通"EditText,但是对TextInputEditText进行错误处理(错误消息显示在底部,而不是"!"drawable出现).
我有这样的事情:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:setError="@{viewModel.error}">
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/simple_edit_text_background"
android:ellipsize="end"
android:inputType="textMultiLine|textNoSuggestions"
android:text="@={viewModel.value}"
style="@style/MyEditTextStyle" />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
但似乎当我在TextInputLayout上设置错误时,它将背景drawable(在普通的TextInputEditText中,下划线)更改为错误TextView的颜色.
我们可以在以下方法中的TextInputLayout代码中看到它:
private void updateEditTextBackground() {
if (mEditText == null) {
return;
}
Drawable editTextBackground = mEditText.getBackground();
if (editTextBackground == null) {
return;
}
ensureBackgroundDrawableStateWorkaround();
if (android.support.v7.widget.DrawableUtils.canSafelyMutateDrawable(editTextBackground)) {
editTextBackground = editTextBackground.mutate();
}
if (mErrorShown && mErrorView != null) {
// Set a color filter of the error color
editTextBackground.setColorFilter(
AppCompatDrawableManager.getPorterDuffColorFilter(
mErrorView.getCurrentTextColor(), PorterDuff.Mode.SRC_IN));
} else if (mCounterOverflowed && mCounterView != null) {
// Set …Run Code Online (Sandbox Code Playgroud) 我正在开发Android Studio和其他IDE,Android Studio有一个功能,可以在Java代码中创建可以折叠的"区域".(见下文)
有了这种代码
//region INITIALIZATION
private int myVaribale;
private String otherVariblae;
//endregion
Run Code Online (Sandbox Code Playgroud)
我们可以折叠/展开代码(见下面的截图).
它们与XML编辑器(特别是Android Studio中的编辑器)类似吗?
我们可以添加的东西,例如:
<!-- region MY LAYOUTS -->
<RelativeLayout>
//Some layouts
</RelativeLayout>
<!-- endregion -->
Run Code Online (Sandbox Code Playgroud) 我有一个RecyclerView内部HorizontalScrollView,我希望它使用一个GridLayoutManager.这没关系,但有一件事还是困扰我,每列的宽度是相同的(根据我想的最大单元格宽度?).是否可以包装列的宽度以匹配此特定列的最大单元格?
它应该看起来像这样:
橙色部分是细胞视图所占据的部分.
编辑
我们让我澄清我的期望.一个例子比单词更好,在这里你可以看到一个带有GridLayoutManager的RecyclerView的截图.每个项目都是一个简单的TextView,随机包含10到40个字符之间的文本.如前所述,RecyclerView位于HorizontalScrollView内.我们可以看到每个列都具有相同的宽度,尽管此列中的任何项都不能满足整个宽度.我想要的是删除那些无用的空白空间和具有不同大小的列,每列与其自己的最大子项的宽度匹配.
如果你想测试这个行为,你可以克隆我在Github上传的这个repo:https://github.com/ShargotthDev/TestGrid
如上所述,这是我的XML布局(非常基本):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<HorizontalScrollView
android:id="@+id/gameplay_hotizontalScroll_ScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="70dp">
<android.support.v7.widget.RecyclerView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/recycler_view" />
</HorizontalScrollView>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
编辑2
我应该提到一些单元格的跨度大小可能超过1,而LayoutManager应该是垂直的,这样那些单元格可以在水平而不是垂直方向上占据更多位置(不知道我是否让自己理解).
谢谢你的时间 !
android gridlayoutmanager android-recyclerview android-wrap-content
不知道它是如何工作的但是根据这篇文章,可以通过使用不同的命名空间来绑定特定的监听器.
我想用searchview做同样的事情并将QueryTextListener绑定到它但是我收到以下错误:
Cannot find the setter for attribute 'bind:setOnQueryTextListener'
with parameter type android.widget.SearchView.OnQueryTextListener.
Run Code Online (Sandbox Code Playgroud)
我在ViewModel中做了什么:
public class MembersFragmentViewModel extends BaseObservable {
private Context context;
private MembersAdapter adapter;
private RecyclerView recyclerView;
public MembersFragmentViewModel(Context context, MembersAdapter adapter, RecyclerView recyclerView) {
this.context = context;
this.adapter = adapter;
this.recyclerView = recyclerView;
}
public SearchView.OnQueryTextListener getQueryTextListener(){
return new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String query) {
List<Contact> filteredModelList = filter(adapter.getContacts(), query);
adapter.animateTo(filteredModelList);
if(recyclerView != null) …Run Code Online (Sandbox Code Playgroud) 我是RxJava/RxAndroid的新手但是我的用例很困难.
我尝试迭代a List<A>将每个A转换为B异步(因为它需要调用数据库),我Observer应该在每次成功转换(in onNext())时通知我在主线程上做一些工作.
我成功地设法转换整个列表,然后收到我的List<B>,onNext()但我需要收到每个项目的通知,而不是所有项目完成后.
我试图与运营商的东西from,但如果我用from(List<A>)我的Observer必须是同一类型(receivied对象A,而不是B).
以下是我的代码如何将整个转换List<A>为list<B>我应该在这里更改的内容?
private List<A> listOfA;
private startConversion() {
Observer observer = new Observer<List<B>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
e.printStackTrace();
}
@Override
public void onNext(List<B> convertedItems) {
onConversionCompleted(convertedItems);
}
};
Observable<B> observervable = Observable.fromCallable(new Callable<List<B>>() {
@Override
public List<B> call() throws Exception …Run Code Online (Sandbox Code Playgroud) 我实际上正在开发一个Android应用程序,我应该根据JSON文档中包含的元数据显示动态表单.基本上它的工作方式(没有细节)是JSON文档代表一个表单的结构:
{
"fields": [
{
"name": "fieldA",
"type": "STRING",
"minCharacters": 10,
"maxCharacters": 100
},
{
"name": "fieldB",
"type": "INTEGER",
"min": 10,
"max": 100
},
{
"name": "fieldC",
"type": "BOOLEAN_CHECKBOX",
"defaultValue": true
}
...
],
"name": "Form A"
}
Run Code Online (Sandbox Code Playgroud)
当应用程序收到其中一个JSON文档时,我实际上正在做的是它遍历每个字段并将其解析到适当的视图(EditText,Checkbox,自定义视图等),向视图添加标记(将是能够轻松检索它并将视图添加到LinearLayout.这是一个伪代码,它实际上是如何工作的:
//Add form title
linearLayout.addView(new TextView(form.name));
//Add form fields
for(Field field: form.fields) {
View view;
switch(field.type){
case STRING: view = new EditText();
...
}
view.setTag(field.id);
linearLayout.addView(view);
}
Run Code Online (Sandbox Code Playgroud)
这个问题是,对于大型表单(如> 20个字段),它需要充斥大量视图,并且UI线程会受到很大影响.另一点需要考虑的是,单个屏幕可能有多种形式(一个接一个地垂直排序).
为了避免重载UI线程我想到了2个可能的解决方案:
但在考虑这两个解决方案时,我会遇到多个问题: