Android - NoSuchElementException的ListView问题

时间:2012-02-08 06:56:05

标签: java android android-listview

我有一个2 EditText用户输入。用户单击“提交”后,这些值将添加到Listview适配器。使用StringTokenizer分隔值。但是,当第一个NoSuchElementException为空且应用为EditText时,会发现force closed。所以我加了try-catch并且它不再强迫关闭了。但是现在,用户输入的值不会添加到行中。项目仍然添加但没有值。我该如何解决这个例外?

简而言之,在我为异常添加了try-catch之后,item中的值为空。

Adapter.java

public View getView(final int position, View convertView, ViewGroup parent)
    {
        View row = convertView;

        if(row == null)
        {
            LayoutInflater inflater = getLayoutInflater();
            row = inflater.inflate(R.layout.custom_list_item, null);
        }
        try
        {
        StringTokenizer tokens = new StringTokenizer(noteList.get(position), ":");
        String first = tokens.nextToken();
        String second = tokens.nextToken();
        row.getTag();
        ((TextView)row.findViewById(R.id.nametv)).setText(first);
        ((EditText)row.findViewById(R.id.result)).setText(second);
        }

        catch (NoSuchElementException f)
        {           

        }

}

1 个答案:

答案 0 :(得分:0)

捕获这样的异常不是正确的方法 - 您可以使用StringTokenizer.hasMoreTokens()轻松避免它。

例如,您可能需要以下内容:

String first = tokens.hasMoreTokens() ? tokens.nextToken() : "";
String second = tokens.hasMoreTokens() ? tokens.nextToken() : "";

通过这种方式,您可以优雅地处理 ,输入的输入比预期的少。

现在,下一行就是:

row.getTag();

这意味着什么?调用getXyz()方法并忽略结果是很奇怪的 - 你确定它是正确的吗?它可能是 - 我不是Android开发人员,所以如果它在Android中很常见,那么你可以忽略这一点 - 但这至少是我想到的。