【Interface&navigation】适配器视图(13)

AdapterView是一个显示加载到适配器中的项目。最常见的适配器类型来自基于阵列的数据源。 ViewGroup

本指南介绍了如何完成与设置适配器相关的几个关键步骤。

用数据填充布局


要将数据添加到您在应用的用户界面中创建的布局中,请添加与以下内容类似的代码:

// Get a Spinner and bind it to an ArrayAdapter that
// references a String array.
Spinner s1 = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter adapter = ArrayAdapter.createFromResource(
    this, R.array.colors, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(adapter);

// Load a Spinner and bind it to a data query.
private static String[] PROJECTION = new String[] {
        People._ID, People.NAME
    };

Spinner s2 = (Spinner) findViewById(R.id.spinner2);
Cursor cur = managedQuery(People.CONTENT_URI, PROJECTION, null, null);

SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this,
    android.R.layout.simple_spinner_item, // Use a template
                                          // that displays a
                                          // text view
    cur, // Give the cursor to the list adapter
    new String[] {People.NAME}, // Map the NAME column in the
                                         // people database to...
    new int[] {android.R.id.text1}); // The "text1" view defined in
                                     // the XML template

adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s2.setAdapter(adapter2);

请注意,必须在CursorAdapter中使用投影中的People._ID列,否则您将得到一个异常。

如果在您的应用程序生命周期中更改适配器读取的基础数据,则应该调用notifyDataSetChanged()。这将通知附加的视图数据已被更改,它应该刷新自己。

处理用户选择


您可以通过将类的AdapterView.OnItemClickListener成员设置为侦听器并捕获选择更改来处理用户的选择。

// Create a message handling object as an anonymous class.
private OnItemClickListener mMessageClickedHandler = new OnItemClickListener() {
    public void onItemClick(AdapterView parent, View v, int position, long id)
    {
        // Display a messagebox.
        Toast.makeText(mContext,"You've got an event",Toast.LENGTH_SHORT).show();
    }
};

// Now hook into our object and set its onItemClickListener member
// to our class handler object.
mHistoryView = (ListView)findViewById(R.id.history);
mHistoryView.setOnItemClickListener(mMessageClickedHandler);

有关如何创建不同AdapterViews的更多讨论,请阅读以下指南: 微调器, 列表视图和 网格视图。

联系我

QQ:94297366
微信打赏:https://pan.baidu.com/s/1dSBXk3eFZu3mAMkw3xu9KQ

公众号推荐:

【Interface&navigation】适配器视图(13)

猜你喜欢

转载自blog.51cto.com/4789781/2134039