你有一个带有列表视图的行imageview和textview一行的布局SimpleCursorAdapter吗?
这将是布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/bowler_txt"
android:paddingLeft="25dp"
android:textSize="30dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Bowler"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
可以使用listview在SimpleCursorAdapter中完成吗?当我在listview中需要图像时,我总是使用自定义arrayadapter但从不使用光标.
如果可以的话,我该如何设置图像?
我有一个DialogFragment创建一个listview对话框,在列表项上单击我想显示一个警告对话框,但是当我创建对话框时,它给了我一个NullPointerException我从未见过的错误
08-05 11:40:42.315: E/AndroidRuntime(4693): java.lang.NullPointerException
08-05 11:40:42.315: E/AndroidRuntime(4693): at android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:142)
08-05 11:40:42.315: E/AndroidRuntime(4693): at android.app.AlertDialog$Builder.<init>(AlertDialog.java:359)
08-05 11:40:42.315: E/AndroidRuntime(4693): at com.tyczj.bowling.dialogs.SeasonType$1$1.onClick(SeasonType.java:60)
08-05 11:40:42.315: E/AndroidRuntime(4693): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
08-05 11:40:42.315: E/AndroidRuntime(4693): at android.os.Handler.dispatchMessage(Handler.java:99)
08-05 11:40:42.315: E/AndroidRuntime(4693): at android.os.Looper.loop(Looper.java:137)
08-05 11:40:42.315: E/AndroidRuntime(4693): at android.app.ActivityThread.main(ActivityThread.java:4745)
08-05 11:40:42.315: E/AndroidRuntime(4693): at java.lang.reflect.Method.invokeNative(Native Method)
08-05 11:40:42.315: E/AndroidRuntime(4693): at java.lang.reflect.Method.invoke(Method.java:511)
08-05 11:40:42.315: E/AndroidRuntime(4693): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
08-05 11:40:42.315: E/AndroidRuntime(4693): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-05 11:40:42.315: E/AndroidRuntime(4693): at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
这是我的对话框 onCreate
@Override
public Dialog onCreateDialog(Bundle state){
final Dialog d = …Run Code Online (Sandbox Code Playgroud) 我有一个扩展应用程序类的类,有时在我的开发人员控制台中,我看到一个错误说 ClassNotFoundException
java.lang.RuntimeException: Unable to instantiate application ecm2.android.ActiveStore: java.lang.ClassNotFoundException: ecm2.android.ActiveStore
at android.app.LoadedApk.makeApplication(LoadedApk.java:501)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4221)
at android.app.ActivityThread.access$1400(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4918)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: ecm2.android.ActiveStore
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at android.app.Instrumentation.newApplication(Instrumentation.java:982)
at android.app.LoadedApk.makeApplication(LoadedApk.java:496)
... 11 more
Run Code Online (Sandbox Code Playgroud)
这是我在清单中声明它的方式
<application
android:name=".ActiveStore"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar" >
Run Code Online (Sandbox Code Playgroud)
ActiveStore 只是一个包含应用程序上下文来启动和取消alrams的类,为什么我会收到此错误?
更新:
我仍然在我的开发者页面中不时看到这个错误,即使在放入.类名前面.它似乎只发生在更新或新安装上
当我想检查并查看ContentProvider我通常做的事情是否与此类似
Cursor c = getContentResolver().query(table,projection,selection,selectionArgs,sort);
if(c != null && c.moveToFirst()){
//item exists so update
}else{
//item does not exist so insert
}
Run Code Online (Sandbox Code Playgroud)
但这意味着我总是要做一个不必要的数据库调用,这会减慢速度,尤其是我需要对数据库进行更多的检查.必须有一个更好的方法来处理这个,所以我不必总是先查询.
我看了这个问题
Android Contentprovider - 在插入方法中更新
但insertWithOnConflict只使用检查主键ID,在我的情况下,这将无法正常工作,因为我正在检查的不是id,而是来自服务器数据库的唯一字符串.
那么我可以用内容提供商做些什么,所以我不必总是要查询是否已经存在该项目?
在我的App Engine后端,我有一个从中获取图像的方法 Google Cloud Storage
@ApiMethod(
name = "getProfileImage",
path = "image",
httpMethod = ApiMethod.HttpMethod.GET)
public Image getProfileImage(@Named("imageName")String imageName){
try{
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
GoogleCredential credential = GoogleCredential.getApplicationDefault();
Storage.Builder storageBuilder = new Storage.Builder(httpTransport,new JacksonFactory(),credential);
Storage storage = storageBuilder.build();
Storage.Objects.Get getObject = storage.objects().get("mybucket", imageName);
ByteArrayOutputStream out = new ByteArrayOutputStream();
// If you're not in AppEngine, download the whole thing in one request, if possible.
getObject.getMediaHttpDownloader().setDirectDownloadEnabled(false);
getObject.executeMediaAndDownloadTo(out);
byte[] oldImageData = out.toByteArray();
out.close();
ImagesService imagesService = ImagesServiceFactory.getImagesService();
return ImagesServiceFactory.makeImage(oldImageData);
}catch(Exception e){
logger.info("Error getting …Run Code Online (Sandbox Code Playgroud) 您打算如何检查Google Play服务的正确版本Firebase?
文档说您应该检查以确保设备上的版本是应用程序中的正确版本,但他们没有显示示例.
没有firebase通常你会使用GoogleApiAvailability但不包含在firebase核心中
那么我需要从谷歌播放服务中包含哪些依赖项?
这些是我当前的依赖项
dependencies {
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:recyclerview-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.android.support:cardview-v7:24.2.1'
compile 'com.google.firebase:firebase-messaging:9.6.1'
compile 'com.google.firebase:firebase-core:9.6.1'
}
Run Code Online (Sandbox Code Playgroud) android firebase google-play-services firebase-cloud-messaging
我正在迁移一个Room正常使用的应用程序,Sqlite而我遇到问题的一个部分是有几个查询具有用户可配置的order by语句,这意味着他们可以更改他们想要查看列表顺序的方式.
似乎房间不允许按语句进行动态排序,因此我必须根据每个订单的声明进行特定的查询.
有没有人找到一个更好的解决这个问题的方法所以我可以有一个查询语句,其中唯一改变的是order by子句vs必须写在我的情况下将是大约15个额外的查询语句基本相同?
我有一个MapFragment显示地图
如果用户随地图离开活动(或设备进入睡眠状态)然后返回onResume被调用,我将地图移回标记.
但是当我移动相机时,我得到一个例外
07-23 16:28:42.725: E/AndroidRuntime(19095): java.lang.RuntimeException: Unable to resume activity {ecm2.android/ecm2.android.EMGNoteMapActivity}: java.lang.IllegalStateException: Map size should not be 0. Most likely, layout has not yet occured for the map view.
07-23 16:28:42.725: E/AndroidRuntime(19095): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2742)
07-23 16:28:42.725: E/AndroidRuntime(19095): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2771)
07-23 16:28:42.725: E/AndroidRuntime(19095): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2235)
07-23 16:28:42.725: E/AndroidRuntime(19095): at android.app.ActivityThread.access$600(ActivityThread.java:141)
07-23 16:28:42.725: E/AndroidRuntime(19095): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
07-23 16:28:42.725: E/AndroidRuntime(19095): at android.os.Handler.dispatchMessage(Handler.java:99)
07-23 16:28:42.725: E/AndroidRuntime(19095): at android.os.Looper.loop(Looper.java:137)
07-23 16:28:42.725: E/AndroidRuntime(19095): at android.app.ActivityThread.main(ActivityThread.java:5041)
07-23 16:28:42.725: E/AndroidRuntime(19095): at java.lang.reflect.Method.invokeNative(Native Method) …Run Code Online (Sandbox Code Playgroud) 无论何时更新GridView/ListView,都要调用notifyDatasetChanged适配器,该适配器使用新数据重新填充列表,删除当前列表中的所有内容.
现在以设计指南中的这个小视频为例L Preview
是否有可能实现同样的效果,你看到的唯一变化是当适配器重新加载时没有任何"闪烁"的新项目,或者这是现在只能在L中完成的事情?
Google Keep添加新笔记时,也可以在应用程序中找到此效果
我有点不确定FirebaseJobDispatcher(JobScheduler)是如何工作的.当用户失去互联网连接然后再次获得连接以便我的应用程序运行并在重新获得连接时进行同步以检查内容更新时我想要它.
我知道我们不应该使用连接更改广播监听器并使用JobScheduler,但似乎JobScheduler更像是一个更智能的AlarmManager,即使没有连接更改(我不需要)它也会运行.
是这种情况还是我误解了它是如何工作的?如果没有,只有当用户重新获得互联网连接时才会触发?
android ×10
android-architecture-components ×1
android-room ×1
firebase ×1
google-maps ×1
listview ×1
sqlite ×1