首页 > 解决方案 > 崩溃主细节流(Android Studio)应用程序〜在Mac上

问题描述

我正在 android studio 上尝试主详细信息流,作为 mac 用户,我意识到文件的名称与 windows 中的名称不同。

例如,我看不到 dummycontent.java 但我看到 placeholder.java 等等。

我正在尝试构建一个简单的应用程序,该应用程序显示 3 个项目,单击后每个项目都应打开一个新活动:

这是我的 placeholder.java:

package com.example.selab5.placeholder;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class PlaceholderContent {

    /**
     * An array of sample (placeholder) items.
     */
    public static final List<PlaceholderItem> ITEMS = new ArrayList<PlaceholderItem>();

    /**
     * A map of sample (placeholder) items, by ID.
     */
    public static final Map<String, PlaceholderItem> ITEM_MAP = new HashMap<String, PlaceholderItem>();

    private static final int COUNT = 3;

    static {
        addItem(new PlaceholderItem("1","Berry Cake","page1"));
        addItem(new PlaceholderItem("2","Molten Cake","page2"));
        addItem(new PlaceholderItem("3","Tart","page3"));

    }

    private static void addItem(PlaceholderItem item) {
        ITEMS.add(item);
        ITEM_MAP.put(item.id, item);
    }

    private static PlaceholderItem createPlaceholderItem(int position) {
        return new PlaceholderItem(String.valueOf(position), "Item " + position, makeDetails(position));
    }

    private static String makeDetails(int position) {
        StringBuilder builder = new StringBuilder();
        builder.append("Details about Item: ").append(position);
        for (int i = 0; i < position; i++) {
            builder.append("\nMore details information here.");
        }
        return builder.toString();
    }

    /**
     * A placeholder item representing a piece of content.
     */
    public static class PlaceholderItem {
        public final String id;
        public final String content;
        public final String details;

        public PlaceholderItem(String id, String content, String details) {
            this.id = id;
            this.content = content;
            this.details = details;
        }

        @Override
        public String toString() {
            return content;
        }
    }
}

这是我在 ItemDetailFragment.java 中的 onCreateView 方法:


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        binding = FragmentItemDetailBinding.inflate(inflater, container, false);
        //View rootView = binding.getRoot();
        View rootView = inflater.inflate(R.layout.fragment_item_detail, container, false);

        CollapsingToolbarLayout toolbarLayout = rootView.findViewById(R.id.toolbar_layout);

        // Show the placeholder content as text in a TextView & in the toolbar if available.
        if (mItem.id.equals("1")) {
            rootView = inflater.inflate(R.layout.activity_berry, container,false);
        }
        else if (mItem.id.equals("2")){
            rootView=inflater.inflate(R.layout.activity_molten,container,false);
        }
        else if(mItem.id.equals("3")){
            rootView=inflater.inflate(R.layout.activity_tart,container,false);
        }

        return rootView;
    }

每次我在模拟器上运行该应用程序时,它都会不断崩溃。请帮忙。谢谢!

标签: javaandroid-studiomaster-detail

解决方案


推荐阅读