如何将数据从类传递到片段?

时间:2018-11-02 19:47:55

标签: java android android-studio android-fragments

我正在尝试为应用创建一些片段,并希望使用一个类来表示其数据,例如名称,级别,运行状况等。

所以在我目前正在处理的片段中,我只知道如何使用在其自己的类文件中声明的数据并将其应用于微调器。以下是它的代码,可以按照我的意愿完美地工作。但是我希望有一个仅包含数据变量的类文件,以便可以在所有片段之间全局使用,而不必一遍又一遍地重复代码。下面是我现在拥有的片段中的代码。

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

        View view = inflater.inflate(R.layout.fragment_hunt, container, false);

        String [] names = {"Peter Pan", "Captain Hook", "Jack Sparrow"};

        Spinner spinner = (Spinner) view.findViewById(R.id.spinner);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, names);
        adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
        spinner.setAdapter(adapter);

        return view;
    }

那么,真的有人知道如何将下面的纯java类中的数据提取到此片段中,以便可以在许多片段之间使用它们吗?

我下面的类是我创建的仅用于存储数据变量的类。

public class TreasureHunter {

    public static String[] name = new String[] {
            "Peter Pan",
            "Captain Hook",
            "Jack Sparrow"
    };

    public static int[] picturePath = new int[] {
            R.drawable.peter,
            R.drawable.hook,
            R.drawable.jack
    };

    public static int[] health = new int[] {
            120,
            100,
            110

    };
}

1 个答案:

答案 0 :(得分:0)

不确定我是否理解正确,但是如果您想从静态类中提取/保存数据,则可以直接调用它:String [] names = TreasureHunter.name。该片段与它无关。
编辑
另外,通过一种更加面向对象的方法,您可以创建具有名称,图像,健康状况等变量的“字符”类。创建一个带有字符“ roster”的静态数组的类。然后构建您的角色:Character peterPan = new Character(name,img,health)然后添加到您的名册数组。这样,您就可以拥有一个由单个字符组成的数组,而不是需要保持平行的数组。