- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我卡在我的代码中,我正在使用抽屉布局,而在 fragment 布局上,我想在从数据库中获取人员列表后显示它。在 fragment 类中,当我使用游标适配器查询并将其设置为列表适配器时,错误显示:
类型 LoaderManager 中的方法 initLoader(int, Bundle, LoaderManager.LoaderCallbacks) 不适用于参数 (int, null, MainFragment)。
我哪里错了,请帮忙。如果您需要更多信息,请询问。下面是我的 fragment 类及其相应的布局代码。提前致谢。
fragment 类:
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.bnkinfotech.corporatedirectory.Directory.Mobile;
import com.bnkinfotech.corporatedirectory.Directory.Telephone;
import android.app.ListFragment;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
//import android.support.v4.app.ListFragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.AsyncTaskLoader;
import android.support.v4.content.Loader;
import android.support.v4.content.CursorLoader;
import android.support.v4.widget.CursorAdapter;
public class MainFragment extends ListFragment implements LoaderCallbacks<Cursor> {
String loginPref;
String email;
String updatedDate;
String onlineemail = null;
SharedPreferences prefAccount;
protected Cursor cursor;
protected ListAdapter adapter;
protected SQLiteDatabase db;
public static String ArgAccountNumber = "account_list_number";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
prefAccount = getActivity().getSharedPreferences("CoDiAccount", Context.MODE_PRIVATE);
onlineemail = prefAccount.getString("email", "-1").toLowerCase();
String directoryname = "CoDiApp" + onlineemail;
SharedPreferences prefs = getActivity().getSharedPreferences(directoryname, Context.MODE_PRIVATE);
loginPref = prefs.getString("login", "-1");
email = prefs.getString("email", "-1").toLowerCase();
updatedDate = prefs.getString("lastupdateddate", "-1");
View rootView = inflater.inflate(R.layout.main_fragment, container, false);
return rootView;
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
}
@Override
public void onStart() {
super.onStart();
if (loginPref == "1")
{
showContacts();
}
else if (loginPref == "0")
{
//Validate account
Intent verifyAccount = new Intent(getActivity(), VerifyAccountActivity.class);
getActivity().startActivity(verifyAccount);
}
else
{
//Email Login
Intent checkEmail = new Intent(getActivity(), CheckEmailActivity.class);
getActivity().startActivity(checkEmail);
}
}
public int showContacts() {
SharedPreferences prefAccount = getActivity().getSharedPreferences("CoDiAccount", Context.MODE_PRIVATE);
String onlineemail = prefAccount.getString("email", "-1").toLowerCase(Locale.ENGLISH);
String directoryname = "CoDiApp" + onlineemail;
SharedPreferences prefs = getActivity().getSharedPreferences(directoryname, Context.MODE_PRIVATE);
String loadxml = prefs.getString("loadxml", "-1");
String groupBy = prefs.getString("groupby", "0");
if (loadxml == "-1")
{
LoadXMLFile();
Editor prefEditor = prefs.edit();
prefEditor.putString("loadxml", "1");
String timeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
prefEditor.putString("lastupdateddate", timeStamp.toString());
prefEditor.commit();
}
String[] uiBindFrom = { SQLiteDB.FIRST_NAME, SQLiteDB.LAST_NAME };
int[] uiBindTo = { R.id.firstName, R.id.lastName };
getLoaderManager().initLoader(0, null, this);
adapter = new SimpleCursorAdapter(
getActivity().getApplicationContext(), R.layout.main_fragment,
null, uiBindFrom, uiBindTo,
CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
setListAdapter(adapter);
return 1;
}
public void LoadXMLFile() {
String response = "";
RequestManager rm = new RequestManager();
String x = "";
ArrayList<Mobile> arrMob;
ArrayList<Telephone> arrTel;
try
{
if(isValidEmail(email))
{
String url = String.format("GetDirectory/{0}", email);
response = rm.GetResponse(url);
try {
// Create your Json Array
JSONArray lList=new JSONArray(response);
// Iterate the json array to get each Json object
for (int i = 0; i < lList.length(); i++) {
JSONObject lObject=lList.getJSONObject(i);
String fName=lObject.getString("FirstName");
String lName=lObject.getString("LastName");
String gName=lObject.getString("GroupName");
JSONArray jsonArr= lObject.getJSONArray("MobileNumbers");
Mobile[] mNumbers=new Mobile[jsonArr.length()];
arrMob = new ArrayList<Mobile>();
for(int j=0;j<jsonArr.length();j++)
{
mNumbers[j]= (Mobile) jsonArr.get(j);
arrMob.add(mNumbers[j]);
}
JSONArray jsonArrTel= lObject.getJSONArray("TelephoneNumbers");
Telephone [] tNumbers=new Telephone[jsonArrTel.length()];
arrTel = new ArrayList<Telephone>();
for(int k=0;k<jsonArrTel.length();k++)
{
tNumbers[k]=(Telephone) jsonArrTel.get(k);
arrTel.add(tNumbers[k]);
}
String hAddress=lObject.getString("HomeAddress");
String oAddress=lObject.getString("OfficeAddress");
//Code to Insert in Sqlite database .....
Directory dir = new Directory();
dir.setFirstName(fName);
dir.setLastName(lName);
dir.setGroupName(gName);
dir.setMobiles(arrMob);
dir.setTelephones(arrTel);
dir.setHomeAddress(hAddress);
dir.setOfficeAddress(oAddress);
DatabaseHandler dbHandler = new DatabaseHandler(getActivity().getApplicationContext());
SQLiteDatabase sqliteDatabase = dbHandler.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(DatabaseHandler.ID, dir.getId());
contentValues.put(DatabaseHandler.FIRST_NAME, dir.getFirstName());
contentValues.put(DatabaseHandler.LAST_NAME, dir.getLastName());
contentValues.put(DatabaseHandler.GROUP_NAME, dir.getGroupName());
contentValues.put(DatabaseHandler.MOBILES, dir.getMobiles().toString());
contentValues.put(DatabaseHandler.TELEPHONES, dir.getTelephones().toString());
contentValues.put(DatabaseHandler.HOME_ADDRESS, dir.getHomeAddress());
contentValues.put(DatabaseHandler.OFFICE_ADDRESS, dir.getOfficeAddress());
sqliteDatabase.insert(DatabaseHandler.TABLE_NAME_MEMBER, null, contentValues);
sqliteDatabase.close();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
else
{
String msg = "Sorry, invalid email";
Toast.makeText(getActivity().getApplicationContext(), msg, Toast.LENGTH_LONG).show();
}
}
catch (Exception ex)
{
response = ex.getMessage().toString();
}
}
public final static boolean isValidEmail(CharSequence email) {
if (email == null) {
return false;
} else {
return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
}
}
@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
String[] projection = { SQLiteDB.ID, SQLiteDB.FIRST_NAME, SQLiteDB.LAST_NAME };
CursorLoader cursorLoader = new CursorLoader(getActivity(),
DatabaseAccessUtility.CONTENT_URI, projection, null, null, null);
return cursorLoader;
}
@Override
public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
((SimpleCursorAdapter) adapter).swapCursor(arg1);
}
@Override
public void onLoaderReset(Loader<Cursor> arg0) {
((SimpleCursorAdapter) adapter).swapCursor(null);
}
}
MainFragment 布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="25dp"
android:minHeight="25dp"
android:id="@+id/FlyOutContent">
<LinearLayout
android:id="@+id/linlaHeaderProgress"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical"
android:visibility="gone">
<ProgressBar
android:id="@+id/pbHeaderProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<RelativeLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="8dp" >
<TextView
android:id="@+id/firstName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="First" />
<TextView
android:id="@+id/lastName"
android:layout_marginLeft="6dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/firstName"
android:text="Last" />
</RelativeLayout>
<LinearLayout
android:orientation="vertical"
android:minWidth="25dp"
android:minHeight="25dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@android:id/empty">
<TextView
android:text="@string/NoFavoritesText"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:id="@+id/textView1"
android:gravity="center"
android:layout_marginLeft="12dip"
android:layout_marginRight="12dip"
android:textColor="#ff5a5a5a"
android:layout_marginTop="80dip" />
</LinearLayout>
</LinearLayout>
最佳答案
由于您使用的是支持库,因此请改用:
getActivity().getSupportLoaderManager().initLoader(0, null, this);
关于android - 方法 initLoader(int, Bundle, LoaderManager.LoaderCallbacks<D>) 一直给我不适用的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24454018/
我正在尝试使用 y 组合器在 Scala 中定义 gcd: object Main { def y[A,B]( f : (A => B) => A => B ) : A => B = f(y(f)
我正在尝试了解返回指向函数的指针的函数,在我尝试编译代码后,它给了我这种错误: cannot convert int (*(int))(int) to int (*(int))(int) in ass
所以我一直在关注 youtube 上的游戏编程教程,然后弹出了这段代码:bufferedImageObject.getRGB(int, int, int, int, int[], int, int);
我正在将时间现在 与存储在数据库某处的时间进行比较。数据库中存储的时间格式为“yyyyMMddHHmmss”。例如,数据库可能会为存储的时间值返回 201106203354。然后我使用一个函数将时间现
例如 Maze0.bmp (0,0) (319,239) 65 120 Maze0.bmp (0,0) (319,239) 65 120 (254,243,90) Maze0.bmp (0,0) (
评论 Steve Yegge的post关于 server-side Javascript开始讨论语言中类型系统的优点和这个 comment描述: ... examples from H-M style
我正在研究 C 的指针,从 Deitel 的书中我不明白 int(*function)(int,int) 和 int*function(int, int) 表示函数时。 最佳答案 C 中读取类型的经验
您好,我使用 weblogic 11g 创建 war 应用程序,我对 joda time 的方法有疑问 new DateTime(int, int, int, int, int, int); 这抛出了
Create a method called average that calculates the average of the numbers passed as parameters. The
var a11: Int = 0 var a12: Int = 0 var a21: Int = 0 var a22: Int = 0 var valueDeterminant = a11 * a12
我正在为一个项目设置 LED 阵列。我得到了一个 LED 阵列,可以根据引脚变化电压进行更改,但我无法添加更多引脚。 当我尝试时,编译失败并显示错误:函数“int getMode(int, int,
除了创建对列表执行简单操作的函数之外,我对 haskell 还是很陌生。我想创建一个列表,其中包含 Int 类型的内容, 和 Int -> Int -> Int 类型的函数. 这是我尝试过的: dat
这个问题已经有答案了: Java add buttons dynamically as an array [duplicate] (4 个回答) 已关闭 7 年前。 StackOverFlow问题今天
我有几个 EditText View ,我想在其中设置左侧的图像,而 setCompoundDrawablesWithIntrinsicBounds 似乎不起作用。图形似乎没有改变。 有人知道为什么会
#include using namespace std; int main() { static_assert(is_constructible, int(*)(int,int)>::val
fun sum(a: Int, b: Int) = a + b val x = 1.to(2) 我在找: sum.tupled(x),或者 sum(*x) 当然,以上都不能用 Kotlin 1.1.3
有一个函数: func (first: Int) -> Int -> Bool -> String { return ? } 返回值怎么写?我对上面 func 的返回类型感到很困惑。 最
type foo = A of int * int | B of (int * int) int * int 和 (int * int) 有什么区别?我看到的唯一区别在于模式匹配: let test_
我正在尝试制作一个 slider 游戏。在这个类中,我使用 Graphics 对象 g2 的 drawImage 方法来显示“拼图”的 block 。但在绘制类方法中,我收到此错误:找不到符号方法dr
我试着理解这个表达: static Func isOdd = i => (i & 1) == 1; 但是这是什么意思呢? 例如我有 i = 3。然后 (3 & 1) == 1 或 i = 4。然后
我是一名优秀的程序员,十分优秀!