两个代码是否具有相同的含义?

时间:2012-08-06 06:58:53

标签: java android listadapter

目前我正在研究setListAdapter,并且遇到了以下两段代码。

摘录1:

ArrayAdapter<String> adapter =
    new ArrayAdapter<String>(this, R.layout.layout_nm, R.id.layout_idnm, items);
setListAdapter(adapter);

摘录2:

setListAdapter(new ArrayAdapter<String>(this, R.layout.layout_nm, R.id.layout_idnm, items););   

我的问题是:

  1. 两个片段的含义是否相同?
  2. 第二个片段是否定义了ArrayAdapter?

4 个答案:

答案 0 :(得分:2)

两者之间的唯一区别是你在第一个中声明了一个局部变量而在第二个中没有声明。

以编程方式它没有区别,但我个人认为第一个更容易阅读。

答案 1 :(得分:1)

这两个代码都具有相同含义

唯一的区别是代码1正在创建一个单独的适配器对象(本地变量,您可以在以后重用它),而代码2正在为您的ListView直接设置适配器。

答案 2 :(得分:0)

只有差异可读性和可维护性

首先是不同的,因为代码具有更高的可读性和更好 需要重建时的可维护性;

答案 3 :(得分:0)

1。第二个选项中有一个额外的";",因此请将其删除...

<强>之前:

setListAdapter(new ArrayAdapter<String>(this, R.layout.layout_nm, R.id.layout_idnm, items););

<强>后:

setListAdapter(new ArrayAdapter<String>(this, R.layout.layout_nm, R.id.layout_idnm, items));

2. 如果您正在使用第二种方法,那么不创建局部变量,当您需要在代码中再次引用此ArrayList对象时,这将产生问题。 /强>

例如,如果您想要执行notifyDataSetChanged()

之类的操作,则需要使用此局部变量