【问题标题】:Android Studio Fragment RoomListFragment not attached to Activity (start new activity in navigation drawer)Android Studio Fragment RoomListFragment 未附加到 Activity(在导航抽屉中启动新活动)
【发布时间】:2020-03-24 13:13:50
【问题描述】:

我在打开类 RoomListFragment 的新活动时遇到问题。我使用导航抽屉。

这是我的 RoomListFragment.class

public class RoomListFragment extends Fragment {
private View root;

public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    root = inflater.inflate(R.layout.fragment_rooms, container, false);

    ListView listView = root.findViewById(R.id.listView);

    RoomListAdapter adapter = new RoomListAdapter(root.getContext(),mTitle,mDescription);

    listView.setAdapter(adapter);

    return root;
}

void startRoomEditManagerActivity(Context context) {
    Intent intent = new Intent(context, RoomEditManager.class);
    startActivity(intent);
}

}

还有我的第二堂课,我有一个按钮,其中有一个我激活的函数 startRoomEditManagerActivity

   RoomListAdapter(Context roomListContext, String[] roomListName, String[] roomListDescription) {
    super(roomListContext, R.layout.row, R.id.testTextView1, roomListName);
    this.roomListName = roomListName;
    this.roomListDescription = roomListDescription;
    this.contextRoomList = roomListContext;
}
        @Override
        public void onClick(View v) {
            editRoomButton.setText(roomListName[position]);

            Toast.makeText(getContext(), roomListName[position] +" id : " + String.valueOf(editRoomButton.getId()),Toast.LENGTH_SHORT).show();

            RoomListFragment roomlistFragment = new RoomListFragment();
            roomlistFragment.startRoomEditManagerActivity(contextRoomList);

        }

感谢帮助^^

【问题讨论】:

    标签: java android android-fragments android-activity android-fragmentactivity


    【解决方案1】:

    将 onclick 替换为

     @Override
            public void onClick(View v) {
                editRoomButton.setText(roomListName[position]);
    
                Toast.makeText(getContext(), roomListName[position] +" id : " + String.valueOf(editRoomButton.getId()),Toast.LENGTH_SHORT).show();
    
    Intent intent = new Intent(contextRoomList , RoomEditManager.class);
        contextRoomList.startActivity(intent);
    
            }
    

    那么,在你的 roomlistFragment 中,你不需要下面的代码

    void startRoomEditManagerActivity(Context context) {
        Intent intent = new Intent(context, RoomEditManager.class);
        contextRoomList.startActivity(intent);
    }
    

    【讨论】:

    • this.contextRoomList 是一个上下文 = 这是在适配器类中。在 RoomListFragment 类中,我有 RoomListAdapter adapter = new RoomListAdapter(root.getContext(),mTitle,mDescription);
    • 那么,有什么想法吗? ;-;
    • 答案没有解决问题吗?
    • 不,当我替换 onclick 时,startActibity(intent) 出现错误:无法解析方法'startActibity(android.content.Intent)'
    • 是的!它现在正在工作真的非常感谢您的帮助^^
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多