我刚刚升级到Android Studio 3.0,我注意到我的代码中都有奇怪的标签/标签.我无法手动删除这些标签,因为光标只是跳过它们.我该如何关掉这些标签?Android Studio具有与IntelliJ不同的菜单和命令.
升级到Android Studio 2.3后,我的Log.d报告不再显示在运行菜单中.我重新启动机器两次.奇怪的是,当我在我的物理设备上运行应用程序时,报告显示出来,而不是模拟器.
我正在尝试为GDPR设置同意书,但该表格给我错误:请求不在EEA中或未知。我怎样才能将自己的位置欺骗到EEA中,以便可以测试表格?我假设ConsentInformation类必须以某种方式获取我的GPS坐标,即使我尝试在电话和模拟器上运行它(两者的结果相同)也是如此。这是我的代码(与文档相同):
public class MainActivity extends AppCompatActivity {
ConsentForm form;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Timber.d(" *** Main Activity *** ");
getConsent();
showConsentForm();
}
public void getConsent() {
Timber.d ("Attempting to get consent");
ConsentInformation consentInformation = ConsentInformation.getInstance(this);
String[] publisherIds = {"pub-2153652996366584"};
consentInformation.requestConsentInfoUpdate(publisherIds, new ConsentInfoUpdateListener() {
@Override
public void onConsentInfoUpdated(ConsentStatus consentStatus) {
// User's consent status successfully updated.
}
@Override
public void onFailedToUpdateConsentInfo(String errorDescription) {
// User's consent status failed to update.
}
});
}
public void showConsentForm() { …Run Code Online (Sandbox Code Playgroud) 我收到“OnQueryTextListener 需要类型不匹配!” 尝试在导航片段中用 Kotlin 实现 searchview 时出错。我已经搜索了尽可能多的示例和 stackoverflow 问题,一切都表明我的代码应该是正确的。请注意,我的搜索视图是持久的(不是菜单的一部分),因此我无法执行 menu.finditem。
这是我的 HomeFragment 代码:
class HomeFragment : Fragment() {
private lateinit var homeViewModel: HomeViewModel
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_home, container, false)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
println("***************** Home Fragment *******************")
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String): Boolean {
// task HERE
return false
}
override fun onQueryTextChange(newText: String): Boolean {
return false
}
})
}
Run Code Online (Sandbox Code Playgroud)
和布局代码:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" …Run Code Online (Sandbox Code Playgroud) 我正试图在我的30dp高度工具栏上垂直居中一个简单的菜单项.我意识到材料指南建议使用48dp的工具栏,但是我的屏幕上有太多项目可以放弃任何不动产.必须有一种方法垂直居中我的工具栏中的菜单项?
菜单通胀:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
Run Code Online (Sandbox Code Playgroud)
Menu_main.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:title="Function"
android:id="@+id/menu_func_keys"
app:showAsAction="always" />
</menu>
Run Code Online (Sandbox Code Playgroud)
我一直在尝试使用Android中的RxJava,但我想弄清楚fromCallable和Just之间的区别.两者都只接收一次数据,而Create则可以多次接收数据.这是我用来试验的代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listenCallable();
listenJust();
}
private void listenCallable() {
CompositeDisposable compositeDisposable = new CompositeDisposable();
Disposable disposable = Shooter.getCallable().subscribe(i -> {
Log.d("Tag", "Listen Callable: " + i);
});
compositeDisposable.add(disposable);
compositeDisposable.dispose();
}
private void listenJust() {
CompositeDisposable compositeDisposable = new CompositeDisposable();
Disposable disposable = Shooter.getJust("Jay").subscribe(i -> {
Log.d("Tag", "Listen Just " + i);
});
compositeDisposable.add(disposable);
compositeDisposable.dispose();
}
}
Run Code Online (Sandbox Code Playgroud)
以及发出数据的类:
public class Shooter {
public static Observable<String> getCallable() {
return …Run Code Online (Sandbox Code Playgroud)