- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在我的应用中使用针对平板电脑的 fragment 。我正在尝试在屏幕左侧显示一个由 SimpleCursorAdapter 支持的 ListView 。
我知道我可能应该使用加载器,因为它不在 UI 线程上运行,但该应用程序也将针对手机,可能是 API 9。
我设置了一个 Activity 来容纳 2 个 fragment ,左边一个列表,右边一个细节 fragment 。
首先,我只想简单地在 ListView 中显示来自光标的数据,稍后我会将其附加到 Activity 中,并让 Activity 实现监听器等。我是 fragment 的新手,所以只想先显示数据。
我在 SimpleCursorAdapter 上遇到 ClassCastException,有人知道为什么吗?
如果我以错误的方式执行此操作,我们深表歉意,但我们将不胜感激。
02-06 09:59:07.718: E/AndroidRuntime(1414): FATAL EXCEPTION: main
02-06 09:59:07.718: E/AndroidRuntime(1414): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.carefreegroup.rr3.carefreeoncall/com.carefreegroup.rr3.carefreeoncall.OnCallListAndDetailsActivity}: java.lang.ClassCastException: android.widget.SimpleCursorAdapter cannot be cast to com.carefreegroup.rr3.carefreeoncall.CarerListFragment$MyAdapter
02-06 09:59:07.718: E/AndroidRuntime(1414): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1736)
02-06 09:59:07.718: E/AndroidRuntime(1414): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1752)
02-06 09:59:07.718: E/AndroidRuntime(1414): at android.app.ActivityThread.access$1500(ActivityThread.java:123)
02-06 09:59:07.718: E/AndroidRuntime(1414): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993)
02-06 09:59:07.718: E/AndroidRuntime(1414): at android.os.Handler.dispatchMessage(Handler.java:99)
02-06 09:59:07.718: E/AndroidRuntime(1414): at android.os.Looper.loop(Looper.java:126)
02-06 09:59:07.718: E/AndroidRuntime(1414): at android.app.ActivityThread.main(ActivityThread.java:3997)
02-06 09:59:07.718: E/AndroidRuntime(1414): at java.lang.reflect.Method.invokeNative(Native Method)
02-06 09:59:07.718: E/AndroidRuntime(1414): at java.lang.reflect.Method.invoke(Method.java:491)
02-06 09:59:07.718: E/AndroidRuntime(1414): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
02-06 09:59:07.718: E/AndroidRuntime(1414): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
02-06 09:59:07.718: E/AndroidRuntime(1414): at dalvik.system.NativeStart.main(Native Method)
02-06 09:59:07.718: E/AndroidRuntime(1414): Caused by: java.lang.ClassCastException: android.widget.SimpleCursorAdapter cannot be cast to com.carefreegroup.rr3.carefreeoncall.CarerListFragment$MyAdapter
02-06 09:59:07.718: E/AndroidRuntime(1414): at com.carefreegroup.rr3.carefreeoncall.CarerListFragment.onActivityCreated(CarerListFragment.java:58)
02-06 09:59:07.718: E/AndroidRuntime(1414): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:749)
02-06 09:59:07.718: E/AndroidRuntime(1414): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:921)
02-06 09:59:07.718: E/AndroidRuntime(1414): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:904)
02-06 09:59:07.718: E/AndroidRuntime(1414): at android.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:1579)
02-06 09:59:07.718: E/AndroidRuntime(1414): at android.app.Activity.performStart(Activity.java:4326)
02-06 09:59:07.718: E/AndroidRuntime(1414): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1709)
02-06 09:59:07.718: E/AndroidRuntime(1414): ... 11 more
.
import android.app.Fragment;
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class CarerListFragment extends Fragment {
private static final String TAG = CarerListFragment.class.getSimpleName();
RROnCallApplication rrOnCallApp;
Cursor cursor;
ListView listView;
MyAdapter myAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
rrOnCallApp = (RROnCallApplication) getActivity().getApplicationContext();
cursor = rrOnCallApp.dbModel.queryAllFromCarer();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragmentcarerlistlayout, container, false);
}
@SuppressWarnings("deprecation")
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
String[] from = new String[]{DBModel.C_CARER_FIRSTNAME, DBModel.C_CARER_LASTNAME, DBModel.C_CARER_PHONENUMBER};
int[] to = {R.id.carerrowfirstname, R.id.carerrowlastname, R.id.carerrowtelno};
myAdapter = (MyAdapter) new SimpleCursorAdapter(getActivity(),R.layout.carerrow , cursor, from, to);
listView = (ListView) getActivity().findViewById(R.id.list);
listView.setAdapter(myAdapter);
}
private class MyAdapter extends SimpleCursorAdapter {
@SuppressWarnings("deprecation")
public MyAdapter(Context context, int layout, Cursor c, String[] from, int[] to) {
super(context, layout, c, from, to);
}
@Override
public
View getView(int position, View convertView, ViewGroup parent) {
Log.e(TAG, "inside myadapter getview");
View v = super.getView(position, convertView, parent);
if(v == null)
return null;
Cursor c = (Cursor)getItem(position);
// String tagScanTime = c.getString(c.getColumnIndex(LoginValidate.C_TAG_SCAN_TIME));
// ((TextView)v.findViewById(R.id.rowcarername)).setText(name + " signed " + status +" at ");
return v;
}
}
}//end of CarerListFragment
.
carerrow.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
>
<TextView
android:id="@+id/carerrowfirstname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<TextView
android:id="@+id/carerrowlastname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<TextView
android:id="@+id/carerrowtelno"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
</LinearLayout>
.
fragmentcarerliSTLayout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="8dp"
android:paddingRight="8dp">
<ListView android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#DEDEDE"
android:layout_weight="1"
android:drawSelectorOnTop="false"/>
</LinearLayout>
最佳答案
myAdapter = (MyAdapter) new SimpleCursorAdapter(getActivity(),R.layout.carerrow , cursor, from, to);
你不能这样做。而是像下面这样改变它
SimpleCursorAdapter adapter = new SimpleCursorAdapter(getActivity(),R.layout.carerrow , cursor, from, to);
或者因为您已经在 MyAdapter
中扩展了 SimpleCursorAdapter
创建它的一个实例。
myAdapter = new MyAdapter(getActivity(),R.layout.carerrow , cursor, from, to);
关于android - fragment 中的 SimpleCursorAdapter ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21599808/
我已经在网上搜索了几天(实际上是几个晚上 ;),但目前我一直在为我的问题寻找解决方案。基本上我想要的是 SQLite 的 ListView ,带有过滤器和重要的事情:保持列表行结果与 SQLite 行
当我在 Droidio 中输入“SimpleCursorAdapter”时,对于应该添加哪个 SimpleCursorAdapter 类是矛盾的: 我也不知道 - 我应该使用哪一个作为在 ListVi
下面是让我悲伤的代码示例。如果我将 simpleCursorAdapter 放在 textchangedlistener 之外,但不在我不断收到消息中,则 simpleCursorAdapter 可以
我的每一行都有一个 ListView,我有一个 LinearLayout,其中包含一些对象(主要是一些 TextView)。 这个ListView我从光标动态填充它。在这个游标中,我有一个值 true
我正在尝试构建 android 应用程序,它似乎将 Force Close 保持在同一位置 (setListAdapter/SimpleCursorAdapter) 现在不管我做什么。这是 DBAda
我有一个关于 SimpleCursorAdapter 的恼人问题。我的程序有 ListView 和 ListActivity。每行都有自己的布局:
此代码通过显示数据库中的所有数据正常工作,但我在过滤时遇到问题。我尝试了很多代码但没有任何效果,有人可以帮助我吗?谢谢 package com.example.dictionary; imp
我想实现一个自定义的 SimpleCursorAdapter,它只在偶数行上显示背景颜色(在我的例子中是蓝色)。我的实现如下: public class ColoredCursorAdapter ex
我正在使用自定义的 SimpleCursorAdapter。目前,如果在数据库/游标中找不到任何条目,我的列表将保持为空。现在,如果光标/数据库中没有条目,我想在列表中显示一条消息。我该如何处理这个事
我一直在开发 Android 应用程序,我有一个问题 - ListView 使用 SimpleCursorAdapter(此游标从 SQLite 数据库获取信息),但如果我编辑我的数据库,ListVi
我试图在我的类中设置一个“SimpleCursorAdapter”对象变量,以便所有方法都可以访问它,所有这些都是非常标准的东西。目前,我在“OnCreate”方法中遇到错误,显示以下错误: 错误:
我想将一个字符串附加到我从数据库中提取到游标中的 ID。我有一个包含 2 个项目的 ListView,我希望文本写入 Id+"some text"。我使用 SimpleCursorAdapter 和
我有一个用 SimpleCursorAdapter 填充的 ListView。对于我列表中的每一项,我按以下顺序排列:TextView > RatingBar > TextView > ImageVi
我正在开发我的第一个 Android 应用程序,但不知道如何让我的 SimpleCursorAdpater 填充 View 。我传入的游标在其中产生了结果,因此问题一定出在实例化适配器或将其绑定(bi
我正在尝试使用自定义适配器访问列表 Activity 。我已经在不使用任何自定义适配器的情况下直接进行了尝试,它运行良好,但因为我想在 ListView 中添加更多功能,所以我想实现一个自定义适配器。
我正在尝试使用带有 ViewBinder 的 SimpleCursorAdapter 从数据库中获取图像并将其放入我的 ListView 项目 View .这是我的代码: private void s
我正在查看 Android 开发者网站上的记事本教程,发现 SimpleCursorAdaptor 已弃用。 新的构造函数 public SimpleCursorAdapter (Context co
我正在使用已弃用的 SimpleCursorAdapter 将数据从 Cursor 显示到 ListView。我添加了额外的参数 0,它删除了弃用的警告,但我想使用更好的方式来显示数据。我读过一些关于
所以我使用 SimpleCursorAdapter 将 SQLite 中的数据适配到 ListView 中。让我们称这个数据库为 testData。我在 testData 中的一列使用 0 或 1 记
我正在使用一个数据库,从中获取一个游标,然后使用一个 simplecursoradapter 来填充一个 ListView 。我似乎无法弄清楚为什么应用程序在创建新的 simplecursoradap
我是一名优秀的程序员,十分优秀!