适配器充当UI组件和数据源之间的桥梁。它将数据源中的数据转换为可以显示在UI组件中的视图项。数据源可以是数组,HashMap,数据库等,UI组件可以是ListView,GridView,Spinner等。ArrayAdapter是android中最常用的适配器。当您具有存储在数组中的单个类型项的列表时,可以使用ArrayAdapter。同样,如果您有电话号码,姓名或城市的列表。 ArrayAdapter具有带有单个TextView的布局。如果要使用更复杂的布局而不是ArrayAdapter,请使用CustomArrayAdapter 。 ArrayAdapter的基本语法为:
public ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)
参数
Parameters |
Description |
---|---|
context | The current context. This value can not be null. |
resource | The resource ID for the layout file containing a layout to use when instantiating views. |
textViewResourceId | The id of the TextView within the layout resource to be populated. |
objects | The objects to represent in the ListView. This value cannot be null. |
语境: 它用于传递当前类的引用。这里的“ this”关键字用于传递当前的类引用。除了“ this”,我们还可以使用用于Activity的getApplicationContext()方法和用于片段的getApplication()方法。
public ArrayAdapter(this, int resource, int textViewResourceId, T[] objects)
资源:用于设置列表项的布局文件(.xml文件)。
public ArrayAdapter(this, R.layout.itemListView, int textViewResourceId, T[] objects)
textViewResourceId:用于设置要在其中显示文本数据的TextView。
public ArrayAdapter(this, R.layout.itemListView, R.id.itemTextView, T[] objects)
对象:这些是用于将数组元素设置为TextView的数组对象。
String courseList[] = {“C-Programming”, “Data Structure”, “Database”, “Python”,
“Java”, “Operating System”,”Compiler Design”, “Android Development”};
ArrayAdapter arrayAdapter = new ArrayAdapter(this, R.layout.itemListView, R.id.itemTextView, courseList[]);
例子
在此示例中,使用简单的阵列适配器显示课程列表。注意,我们将使用Java语言实现该项目。
步骤1:创建一个新项目
要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Java作为编程语言。
步骤2:使用activity_main.xml文件
转到布局文件夹,然后在activity_main.xml文件中将ConstraintLayout更改为RelativeLayout并插入ID为simpleListView的ListView。以下是activity_main.xml文件的代码。
XML
XML
Java
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
ListView simpleListView;
// array objects
String courseList[] = {"C-Programming", "Data Structure", "Database", "Python",
"Java", "Operating System", "Compiler Design", "Android Development"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
simpleListView = (ListView) findViewById(R.id.simpleListView);
ArrayAdapter arrayAdapter = new ArrayAdapter(this,
R.layout.item_view, R.id.itemTextView, courseList);
simpleListView.setAdapter(arrayAdapter);
}
}
步骤3:创建一个新的布局文件
转到应用程序> res>布局>右键单击>新建>布局资源文件,然后创建一个新的布局文件,并将该文件命名为item_view.xml ,并将根元素设置为LinearLayout。这将包含一个TextView,用于将数组对象显示为输出。
XML格式
步骤4:使用MainActivity。 Java文件
现在转到Java文件夹,然后进入MainActivity。 Java并将实现提供给ArrayAdapter。下面是MainActivity的代码。 Java文件。
Java
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
ListView simpleListView;
// array objects
String courseList[] = {"C-Programming", "Data Structure", "Database", "Python",
"Java", "Operating System", "Compiler Design", "Android Development"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
simpleListView = (ListView) findViewById(R.id.simpleListView);
ArrayAdapter arrayAdapter = new ArrayAdapter(this,
R.layout.item_view, R.id.itemTextView, courseList);
simpleListView.setAdapter(arrayAdapter);
}
}