gpt4 book ai didi

Java:循环思考列表,然后用 if else 检查结果

转载 作者:行者123 更新时间:2023-12-02 01:24:38 25 4
gpt4 key购买 nike

我遇到的情况是,我有 Arraylist,其中包含名称项。我需要循环遍历该名单,检查用户给出的新名称是否已在列表中。如果是,只需给 toast 通知用户该名称已经存在,或者如果不存在,则将名称添加到列表中。

这就是我所拥有的:

public class ActivityPlayers extends AppCompatActivity {
public static ArrayList<NameItem> mNameList;

private Button buttonAdd;
private EditText textAdd;

private int checkNumber;


/** When "add" button been clicked... **/
textAdd = findViewById(R.id.name_input);
buttonAdd.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View view) {

/** Loop the list **/
for (int i = 0; i < mNameList.size(); i++) {

/** Check if user input match to any name in list
and if it does...**/
if (mNameList.get(i).getText1().equals(textAdd.toString().trim())) {
checkNumber = 1;
break;
} else {
/** If it doesn't **/
checkNumber = 0;
}
}

/** if checkNumber is still 0 **/
if (checkNumber == 0) {
/** Close soft keyboard **/
InputMethodManager input = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
input.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);

/** ...add a name to the namelist **/
addItem(0);
} else {
/** if name in a list == name from input, give toast **/
Toast toast = Toast.makeText(getApplicationContext(),
"Name is already on a list", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 0);
toast.show();
}
}
});

有什么想法为什么这行不通吗?它只将名称添加到列表中,即使它已经存在......但它从不检测重复项......

最佳答案

if (mNameList.get(i).getText1().equals(textAdd.toString().trim()))

在上面的代码行中,您将第 i 个列表元素与 EditText 本身的字符串表示形式进行比较,而不是与其 Text 字段进行比较。您应该使用 textAdd.getText(),而不是 textAdd.toString()

与问题无关,但我建议使用 boolean 变量来表示代码中的逻辑标志,而不是整数计数。
在上面的例子中,它会像这样:

private boolean nameInList = false;
//...
if (...) {
nameInList = true;
break;
}
//...
if (nameInList) {
//...
} else {
//...
}

关于Java:循环思考列表,然后用 if else 检查结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57123889/

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