`
chenhaodejia
  • 浏览: 114608 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ArrayAdapter和List的关系

阅读更多

1、使用ArrayAdapter(数组适配器)顾名思义,需要把数据放入一个数组以便显示。

package com.js.EX04_9;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;

public class EX04_9 extends Activity {
private static final String[] countresStr =
{
"北京","上海","湖南","江苏"
};
private TextView myTextView;
private EditText myEditText;
private Button myButtonAdd, myButtonRemove;
private Spinner mySpinner;
private ArrayAdapter<String> adapter;  //把数据放入一个数组以便显示
private List<String> allCountres;     //

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        allCountres = new ArrayList<String>();
        for(int i = 0; i < countresStr.length; i++)
        {
        allCountres.add(countresStr[i]);
        }
        //new ArrayAdapter对象并将allCountres传入。
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, allCountres);
        adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
       
        //以findViewById()取得对象
        myTextView = (TextView) findViewById(R.id.myTextView);
        myEditText = (EditText) findViewById(R.id.myEditText);
        myButtonAdd = (Button) findViewById(R.id.myButtonAdd);
        myButtonRemove = (Button) findViewById(R.id.myButtonRemove);
        mySpinner = (Spinner) findViewById(R.id.mySpinner);
       
        //将ArraySpinner添加Spinner对象
        mySpinner.setAdapter(adapter);
       
        //将myButtonAdd添加OnClickListener对象
        myButtonAdd.setOnClickListener(new OnClickListener()
{

@Override
public void onClick(View arg0)
{
//取得EditText输入的文字
String newCountry = myEditText.getText().toString();
//先比较先添加的是不是已经存在,不存在才添加
for(int i = 0; i < adapter.getCount(); i++)
{
if(newCountry.equals(adapter.getItemId(i)))
{
return;
}
}
if(!newCountry.equals(""))
{
//将值添加至adapter
adapter.add(newCountry);
//取得添加值的位置
int position = adapter.getPosition(newCountry);
//将Spinner添加在选择值的位置
mySpinner.setSelection(position);
myEditText.setText("");
}
}
});
        //将myButtonRemove添加OnClickListener
        myButtonRemove.setOnClickListener(new OnClickListener()
{

@Override
public void onClick(View arg0)
{
if(mySpinner.getSelectedItem() != null)
{
//删除mySpinner的值
adapter.remove(mySpinner.getSelectedItem().toString());
//将myEditText清空
myEditText.setText("");
if(adapter.getCount() == 0 )
{
//将myEditText清空
myEditText.setText("");
}
}
}
});
       
        //将mySpinner添加OnItemSelectedListener
        mySpinner.setOnItemSelectedListener(new OnItemSelectedListener()
{

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3)
{
//将mySpinner所选的值带入myTextView中。
myTextView.setText(arg0.getSelectedItem().toString());

}

@Override
public void onNothingSelected(AdapterView<?> arg0)
{
// TODO Auto-generated method stub

}
       
});
       
    }
}

 

 

:博客涉及的源码请在千寻资源库www.qxzyk.com 下载获取,谢谢支持。

分享到:
评论

相关推荐

    Android之ListView<3>ArrayAdapter,SimpleAdapter

    使用SimpleAdapter时,需要创建一个数据列表,其中每个元素都是一个Map,然后指定布局文件和键值映射关系。例如: ```java List, String&gt;&gt; data = new ArrayList(); HashMap, String&gt; item = new HashMap(); item....

    android ListView及ArrayAdapter,SimpleCursorAdapter,SimpleAdapter用法示例

    ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, items); ListView listView = findViewById(R.id.list_view); listView.setAdapter(adapter); ``` 接下来是...

    ListRadio ListRadio

    Adapter是连接ListView和数据源的桥梁,它可以是ArrayAdapter、CursorAdapter或自定义的Adapter。 **2. RadioButton的使用** RadioButton属于Android的RadioButton类,是Checkbox的子类,用于实现单选功能。在一个...

    ex07_list.rar_android_ex07_list

    适配器可以是ArrayAdapter、CursorAdapter、SimpleAdapter等,根据数据类型和需求选择合适的适配器。适配器负责将数据转化为ListView可显示的View,同时处理数据与View的映射关系。 在"ex07_list"项目中,我们可能...

    ListViewDemo

    这种方式适合数据和视图映射关系比较固定的情况。使用SimpleAdapter时,你需要提供数据列表(List, ?&gt;&gt;),布局资源ID,数据键列表,以及数据类型和视图ID的映射。 ```java List, String&gt;&gt; data = new ArrayList();...

    Listiview Demo

    在创建SimpleAdapter时,除了上下文、布局ID和数据源外,还需要提供一个映射列表,定义数据字段与视图ID的对应关系。这使得SimpleAdapter能够处理复杂的数据结构,例如键值对列表。通过这种方式,你可以轻松地将JSON...

    Android list view结课作业

    - 如果列表需要展示层级关系的数据,可以使用ExpandableListView,它支持子项的展开和折叠。 8. **ListView与RecyclerView的对比**: - RecyclerView是后来推出的更现代、更灵活的列表组件,它提供了更高效的视图...

    Android ListView和ListAdapter.doc

    要想正确地使用 ListView,需要了解 ListView、ListAdapter 和数据之间的关系。 一、ListView ListView 是 Android 中的一个视图控件,用于显示大量的数据。每一项其实都是一个 TextView。ListView 需要通过 ...

    J2ME 手机程序开

    1. **创建List**: 演示如何使用DefaultListModel或ArrayAdapter创建列表,并添加选项。 2. **Command事件处理**: 展示如何定义Command对象,将其添加到List或Screen上,以及如何实现CommandListener并处理command...

    list view with database

    1. **SQLite数据库**:SQLite是Android系统内置的关系型数据库,轻量级、易于使用,不需要单独的服务进程。我们可以通过`SQLiteOpenHelper`类创建数据库和表,以及执行SQL语句进行数据的增删改查操作。 2. **数据...

    ListView之适配器

    - 初始化:创建SimpleAdapter需要提供上下文、布局ID、数据集、一个定义视图和数据映射关系的列表(Pair, valueFromKey&gt;)以及一个数据类型转换器(如String类的简单实例)。 - 数据绑定:SimpleAdapter会根据数据...

    Android adapter详解

    通过适配器模式,开发者能够更加高效地在各种数据源和多样的UI组件之间建立映射关系,使得用户界面能够更加友好和直观地展示数据信息。理解并掌握Adapter的使用对于开发复杂和高质量的Android应用至关重要。

    android Adapter教程

    ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1, strs); setListAdapter(adapter); } } ``` 上述代码展示了如何使用 ArrayAdapter 将一个字符串...

    listview按序排列显示

    **一、Map与List的关系** 在Java中,Map是一种键值对的数据结构,它不支持直接排序,因为它的设计目标是快速查找而不是排序。而List是一个有序的元素集合,可以通过索引来访问其中的元素。当需要将Map中的数据展示...

    Android之Adapter用法总结

    通常,数据、Adapter 和 View 三者之间的关系如下: 1. **数据** (Data): 存储或获取的数据,例如来自网络请求或本地数据库的信息。 2. **Adapter** (适配器): 负责将数据转换成 View 可以理解的形式,并且管理数据...

    SimpleAdapter.rar

    - **ArrayAdapter**:更基础,只适用于单一数据类型的列表,而SimpleAdapter可以处理复杂的数据结构。 - **BaseAdapter**:更灵活,需要手动实现更多方法,但能定制更多的功能和交互。 - **CursorAdapter**:专门...

    应用源码之(列表之SimpleAdapter适配).zip

    SimpleAdapter是Android SDK提供的一种简单易用的适配器,它适用于那些数据源和视图之间关系较为简单的场景。在这个源码学习资源中,你将了解到如何通过SimpleAdapter将数据集合(如ArrayList)映射到ListView的各个...

    Spinner的二级联动

    这样的功能常见于多级分类或者层级关系较深的数据选择场景。 首先,我们需要了解Spinner的基本使用。Spinner可以通过ArrayAdapter或CursorAdapter来填充数据,常见的做法是创建一个包含选项的字符串数组资源,然后...

Global site tag (gtag.js) - Google Analytics