コードの提案によりextends ListActivity
、2つのクラスから変換しています。extend ListFragment
私が知っているように、フラグメントはアクティビティに関連しているため、最初は使用getActivity()...
してほとんどのメソッドを適応させる必要があります。それ以外の場合は、これを定義Activity activity_context;
して使用します。
とにかく、適応できない機能がいくつかあり、助けが必要です。
1 つ目は次のとおりです。 RecentCallsListActivity extends Fragment
public class RecentCallsListActivity extends ListFragment
...
private static final class QueryHandler extends AsyncQueryHandler {
private final WeakReference<RecentCallsListActivity> mActivity;
...
public QueryHandler(Context context) {
super(context.getContentResolver());
mActivity = new WeakReference<RecentCallsListActivity>(
(RecentCallsListActivity) context); //GETTING THE ERROR HERE
}
エラー:コンテキストから RecenCallsListActivity にキャストできません
public void onActivityCreated(Bundle state) {
super.onActivityCreated(state);
mQueryHandler = new QueryHandler(activity_context);
2 つ目は次のとおりです。 CallDetailActivity extends Fragment
public class CallDetailActivity extends ListFragment
...
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_CALL: {
// Make sure phone isn't already busy before starting direct call
TelephonyManager tm = (TelephonyManager)
getActivity().getSystemService(Context.TELEPHONY_SERVICE);
if (tm.getCallState() == TelephonyManager.CALL_STATE_IDLE) {
Intent callIntent = new Intent(Intent.ACTION_CALL,
Uri.fromParts("tel", mNumber, null));
startActivity(callIntent);
return true;
}
}
}
return super.onKeyDown(keyCode, event); //GETTING IT HERE
}
エラー:メソッド onkeyDown(int, keyevent) は ListFragment 型に対して定義されていません