繁体   English   中英

从活动到列表活动的转换

[英]Transformation from Activity to ListActivity

这段代码基本上从数据库中获取数据,并将其与搜索框一起显示在列表中,该搜索框有助于从列表中滤除特定值。

请检查此快照!

http://imgur.com/MpkXe

但是问题是DataAttach.java是从Activity扩展的,不支持onListItemClick()

如果要包含onListItemClick() ,则必须从ListActivity而不是Activity扩展类。

问题来了。 如果我从ListActivity扩展类,则无法在视图中包括搜索框。

我陷入僵局,任何建议表示赞赏。 谢谢。

DataAttach.java(片段)

                    symbolarr = dbM.getSymbol();

                    if (symbolarr != null) {
                        list1 = new String[symbolarr.length];

                        for (int i = 0; i < symbolarr.length; i++) {
                            list1[i] = symbolarr[i];
                        }
                    }

                    // ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                    // android.R.layout.simple_list_item_1, symbolarr);
                    // setListAdapter(adapter);

                    lv.setAdapter(new ArrayAdapter<String>(this,
                            android.R.layout.simple_list_item_1, symbolarr));

DbManager.java(片段)

            public String[] getSymbol() {
                Cursor cur;
                try {
                    cur = mDb.rawQuery("select symbol,company_name from scrip", null);
                } catch (SQLiteException e) {
                    throw new Error(" *** ERROR in cursor *** " + e.getMessage());
                }

                String[] b1 = new String[1326];
                int x = 0;
                if (cur.moveToFirst()) {
                    do {
                        b1[x] = cur.getString(cur.getColumnIndex("symbol"));
                        x++;
                    } while (cur.moveToNext());
                }
                cur.close();
                return b1;
            }

main.xml

    < LinearLayout android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical"
    android:id="@+id/MainLayout">

    < EditText android:id="@+id/txt1" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:hint="Search">
    < /EditText>

    < ListView android:id="@+id/list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
    < /ListView>

    < /LinearLayout>

您实际上可以采用以下任何一种方式:

  1. 定义具有自定义布局的ListActivity: http : //developer.android.com/reference/android/app/ListActivity.html请注意,您必须像这样设置id @android:id/list

  2. 如果没有ListActivity :在ListView上使用setOnItemClickListener(AdapterView.OnItemClickListener listener)

list_view = (ListView) findViewById(R.id.list);

list_view.setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            // TODO Auto-generated method stub

                            // Do here whatever you want
    }

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM