gpt4 book ai didi

java - 创建一个类实例并使用局部变量命名它(android)

转载 作者:行者123 更新时间:2023-11-29 03:25:53 25 4
gpt4 key购买 nike

我正在开发一个小型/基本的 android 应用程序,它允许用户在 ListView 中创建项目并保留有关这些项目的一些统计信息(例如点击频率等)。现在我有了它,所以用户可以输入他们的新项目的名称,一旦他们单击创建按钮,它就会将元素添加到 ListView。如果用户选择列表中的一项,它会打开第二个 Activity ,他们将能够在其中分析统计数据、重置点击计数器等。

This is what the application looks like

(* 补充信息 *:MainActivity.java 是如上所示的主要 Activity 。 ClickerActivity.java 是第二个 Activity ,用于显示每个答题器的统计信息。 Clicker.java 是一个包含每个答题器的名称/点击次数/统计信息的类。)

我的方法是,当按下“New Clicker”按钮时,我应该采用他们提供的名称并将其添加到 ListView 并创建一个 Clicker 类对象(用于跟踪统计信息)。这些 Clicker 对象将本地存储在 ArrayList 中,这样我就可以轻松地扩大和缩小列表。然后启动 clickerActivity - 将 Clicker 类对象作为参数传递。

这留给我几个问题,首先:如何动态创建此类的实例并为变量表示赋予一个有意义的名称(在进行中)。我正在考虑使用用户输入的字符串变量来命名答题器,但我不确定是否允许这样做。

例如。

// This is the string name the user chooses for the new clicker
String newClickerName = clickerName.getText().toString();
Clicker newClickerName = new Clicker();
// Start the activity and pass the clicker object.

我知道上面的代码行不通,但这是展示我正在尝试做的事情的最佳方式。我看过一些帖子,人们建议使用

Class var = Class.forName(classname);

但我不确定这就是我要找的。

其次 如果您发现这不是一个好的设计选择(我指的不是图形),那么请就如何改进它发表您的意见。我对此很陌生,感谢您的反馈。

最后,感谢您花时间阅读我的问题。如果有任何混淆,请说出来,我会尽力澄清。

最佳答案

您正在努力解决无法以您希望的方式解决的问题。我知道您想实现这样的目标:

用户给你“nameForMyVariable”String并且您想创建一个具有该名称的变量: Clicker nameForMyVariable;

这是不可能的。

但是您可以不简单地创建 Clicker对象,创建一个 Pair<Clicker, String> , 其中String字段将被您用作键。然后你可以创建一个 ArrayList其中Pair s 并搜索 Clicker您需要查看其 key 。

请注意,您需要创建自己的 Pair类,因为 Java 没有它。不过这并不难。

上述方法也引出了另一种解决方案——使用 HashMap<String, Clicker> ,所以 String是一把 key 。你可以像这样使用它:

HashMap<String, Clicker> clickers = new HashMap<String, Clicker>();

// put some content to the map
clickers.put("nameForMyVariable1", new Clicker());
clickers.put("nameForMyVariable2", new Clicker());

// now you can find appropriate Clicker simply by specifying its key
clickers.get("nameForMyVariable1"); // returns Clicker with nameForMyVariable1 name

如果有什么不明白的地方告诉我。

编辑:

根据您在评论中提出的问题。假设您有 ArrayList<Pair<Clicker, String>> clickers在某处创建。

您可以添加新的 Pair像这样:

clickers.add(new Pair<Clicker, String>(new Clicker(), "myVariableName1"));

你现在看到了吗?没有为 Pair 使用名称对象。

关于java - 创建一个类实例并使用局部变量命名它(android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21017031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com