【问题标题】:Transformation from Activity to ListActivity从 Activity 到 ListActivity 的转换
【发布时间】:2011-12-03 08:19:04
【问题描述】:

这段代码基本上是从数据库中获取数据并将其显示在一个列表中,并与一个搜索框一起帮助过滤掉列表中的特定值。

请检查此快照!

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

如果我想包含onListItemClick(), 我必须从ListActivity 扩展类而不是Activity

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

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

DataAttach.java(sn-p)

                    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(sn-p)

            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;
            }

ma​​in.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>

【问题讨论】:

    标签: android android-listview android-activity


    【解决方案1】:

    实际上你可以选择任何一种方式:

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

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

    【讨论】:

    • 非常感谢!我用的是第二种方法。
    【解决方案2】:
    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
        }
    
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-26
      • 2011-10-04
      • 1970-01-01
      • 2021-04-05
      • 1970-01-01
      相关资源
      最近更新 更多