java - 列表列出返回对象引用
问题描述
我正在制作一个应用程序,其中我有一个中央回收视图,其中列出了用户将键入的项目,在 2 个按钮下方,一个用于添加项目,另一个用于完成。我遇到的问题是,当用户完成任务并单击完成时,我想获取列表中他的屏幕上列出的所有数据并将其存储在 firebase 中,但我无法获取此数据在形状数组中,它总是返回对象引用。
在互联网上搜索我发现了如何在数组中使用 .toString ,但它返回给我同样的东西。这是我收到的退货示例。
我的对象的代码
public class ListItem {
private float measure;
public ListItem(float measure) {
this.measure = measure;
}
public float getMeasure() {
return measure;
}
public void setMeasure(float measure) {
this.measure = measure;
}
}
我的按钮代码添加
private View.OnClickListener addItem = new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogForm();
mAdapter.notifyItemInserted(listItems.size());
}
};
void DialogForm() {
AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);
final View customLayout = getLayoutInflater().inflate(R.layout.layout_dialog, null);
alert.setView(customLayout);
alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
EditText measure = customLayout.findViewById(R.id.edit_measure);
String response = measure.getText().toString();
if (response.isEmpty() || response.equals("0")) {
Toast.makeText(MainActivity.this, "A medida não pode ser vazia",
Toast.LENGTH_SHORT).show();
} else {
listItems.add(new ListItem(Float.parseFloat(response)));
btnFinish.setEnabled(true);
btnFinish.setBackgroundResource(R.drawable.bg_button_enabled);
}
}
});
AlertDialog dialog = alert.create();
dialog.show();
}
当我列出时,我的按钮代码完成
private View.OnClickListener finishListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i=0; i<listItems.size(); i++){
Log.d("teste", listItems.get(i).toString());
}
}
};
解决方案
如果不覆盖 toString() 将始终返回对象的哈希值,因为它是从 java.lang.Object 继承的方法而不是特定于您的对象
如果您希望 toString 返回measure
变量,请将以下内容添加到您的 ListItem 类
@Override
public String toString() {
return Integer.toString(measure);
}
为了向该方法添加更多条目,只需添加另一个条目,+ myData
但可能要确保有某种分隔符以使其具有波纹可读性 - 例如+ " || " +
或其他
祝项目顺利
推荐阅读
- javascript - 加载模块时出现 AudioWorklet DOMException 错误
- r - 用日期计算R中变异内的前导变量
- firebase - Golang,Firebase ......将 MAP 转换为结构切片
- ios - 为什么这两个表的行高不同?
- powershell - 如何只返回一个数据库的兼容级别?
- ruby-on-rails - 设计引导视图错误渲染:找不到类型为“text/css”的文件“devise_bootstrap_views”
- r - RStudio 全局环境不反映对 data.table 的就地更改
- system-verilog - 在系统verilog中生成块
- python - 如何使用 python 和 TextBlob 在我的 nltk 语料库中获取拼写错误的单词列表
- sql-server-2012 - 使用存储过程更新复选框时仅发送一次电子邮件