当前位置: 首页 > 面试题库 >

将其从AppCompatActivity转换为Fragment并出现Intent错误等

胡鸿羲
2023-03-14
问题内容

我已经尝试了一个月,做了很多研究,将其翻译成Fragment,因为我的导航菜单需要它。基本上,我正在创建一个应用程序。我正在使用MainActvity使用Fragment运行导航菜单。然后,我将不得不使用这些类并将其作为Fragment运行,但是有一次我不得不使用AppCompatActivity,因此我将其转换为Fragment,但遇到了Intent和其他变量的问题。我需要帮助。我只是在学习如何编码。我得到的错误是:

 Error:(63, 33) error: no suitable constructor found for 
 Intent(Events,Class<AddEvent>) constructor Intent.Intent(String,Uri) is not 
 applicable (argument mismatch; Events cannot be converted to String) 
 constructor Intent.Intent(Context,Class<?>) is not applicable (argument 
 mismatch; Events cannot be converted to Context)

这是我编码的类:

public class Events extends Fragment implements 
LoaderManager.LoaderCallbacks<Cursor> {

private FloatingActionButton mAddEventButton;
private Toolbar mToolbar;
EventCursorAdapter mCursorAdapter;
EventDbHelper eventDbHelper = new EventDbHelper(getActivity());
ListView eventListView;
ProgressDialog prgDialog;



private static final int VEHICLE_LOADER = 0;

@Nullable
@Override
public ListView onCreateView(LayoutInflater inflater, @Nullable ViewGroup 
container, Bundle savedInstanceState) {
    eventListView = (ListView) inflater.inflate(R.layout.nav_events, container, 
false);
    return eventListView;

    mToolbar = (Toolbar) getView().findViewById(R.id.toolbar);
    ((AppCompatActivity)getActivity()).setSupportActionBar(mToolbar);
    mToolbar.setTitle("Events");

    eventListView = (ListView) getView().findViewById(R.id.list);
    View emptyView = getView().findViewById(R.id.empty_view);
    eventListView.setEmptyView(emptyView);

    mCursorAdapter = new EventCursorAdapter(getActivity(), null);
    eventListView.setAdapter(mCursorAdapter);

    eventListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int 
position, long id) {

            Intent intent = new Intent(Events.this, AddEvent.class, null);


            Uri currentVehicleUri = 
ContentUris.withAppendedId(EventContract.EventEntry.CONTENT_URI, id);

            // Set the URI on the data field of the intent
            intent.setData(currentVehicleUri);

            startActivity(intent);

        }
    });


    mAddEventButton = (FloatingActionButton) getView().findViewById(R.id.fab);

    mAddEventButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(v.getContext(), AddEvent.class);
            startActivity(intent);
        }
    });

    getLoaderManager().initLoader(VEHICLE_LOADER, null, this);


}

@Override
public Loader<Cursor> onCreateLoader(int i, Bundle bundle) {
    String[] projection = {
            EventContract.EventEntry._ID,
            EventContract.EventEntry.KEY_TITLE,
            EventContract.EventEntry.KEY_DATE,
            EventContract.EventEntry.KEY_TIME,
            EventContract.EventEntry.KEY_REPEAT,
            EventContract.EventEntry.KEY_REPEAT_NO,
            EventContract.EventEntry.KEY_REPEAT_TYPE,
            EventContract.EventEntry.KEY_ACTIVE

    };

    return new CursorLoader(getActivity(),   // Parent activity context
            EventContract.EventEntry.CONTENT_URI,   // Provider content URI to 
query
            projection,             // Columns to include in the resulting 
Cursor
            null,                   // No selection clause
            null,                   // No selection arguments
            null);                  // Default sort order

}

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
    mCursorAdapter.swapCursor(cursor);

}

@Override
public void onLoaderReset(Loader<Cursor> loader) {
    mCursorAdapter.swapCursor(null);

}

问题答案:

问题是由以下行引起的:
Intent intent = new Intent(Events.this, AddEvent.class, null);

您应该使用可用的Public构造函数之一实例化Intent 。
在这种情况下,我建议使用new Intent(view.getContext(), AddEvent.class);



 类似资料:
  • 问题内容: 请考虑以下情况: 我本来希望有一个允许将错误值(例如that )转换为s的转换的选项。有没有办法做到这一点? 问题答案: 使用[](http://pandas.pydata.org/pandas- docs/stable/generated/pandas.to_numeric.html)与 如果需要填写,请使用。 注意,在可能的情况下,将尝试将浮点型转换为整数。如果不需要,请删除该参数

  • 问题内容: 这些是可能的输出格式 如何将它们解析为几秒钟? 由于我不知道可以输入多长时间,因此请假设至少3位数字。 输出将只有一行,因此不需要循环。 问题答案: 使用awk: 运行: 输出: 最后,如果您希望通过管道传递到解析器,则可以执行以下操作:

  • 这段代码有两个问题: explext强制转换; 我想知道是否有一行的解决方案。 那么我们有没有更优雅的方法来做到这一点呢? 队列是否反向并不重要。我需要一个反转元素的int数组。

  • 问题内容: 到目前为止,这就是我所拥有的:我传递一个具有2个字段的对象:String和Integer作为参数,并且我想发送信息以在C部分中对其进行处理,这在当时并不重要…我抱怨在jstring声明 我想念什么? 问题答案: ……然后一切正常。

  • 我现在有这个JSON文件: 我想获取所有用户名并将其转换为ArrayList。所以我的ArrayList只有用户名、用户名1和用户名2。 我也在使用org. JSON。