Android SimpleCursorTreeAdapter Child Click

时间:2011-09-11 19:20:20

标签: java android

我有一个使用simplecursortreeadapter的可扩展列表

如何整合onclicklistener或以任何方式更改

到目前为止,我的脚本如下。我试图在这篇文章的底部使用onclicklistener,但我无法弄清楚如何将它从listview更改为可扩展的listview监听器为孩子们。

   protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            setContentView(R.layout.cattest);

            SQLiteDatabase checkDB = null;
            checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);

            Cursor groupCursor = checkDB.rawQuery("SELECT * FROM countries", null);
            MySimpleCursorTreeAdapter mscta = new MySimpleCursorTreeAdapter(
                                                    this,
                                                    groupCursor,
                                                    R.layout.employee_list_item,
                                                    new String[] {"country"},
                                                    new int[] {R.id.country},
                                                    R.layout.employee_list_item,
                                                    new String[] {"employee"},
                                                    new int[] {R.id.lastName});
            setListAdapter(mscta);
            checkDB.close();


    }

    class MySimpleCursorTreeAdapter extends SimpleCursorTreeAdapter{

            public MySimpleCursorTreeAdapter(Context context, Cursor cursor,
                            int groupLayout, String[] groupFrom, int[] groupTo,
                            int childLayout, String[] childFrom, int[] childTo) {
                    super(context, cursor, groupLayout, groupFrom, groupTo, childLayout, childFrom,
                                    childTo);
            }


            @Override
            protected Cursor getChildrenCursor(Cursor groupCursor) {
                    String countryID = Integer.toString(groupCursor.getInt(0));
                    SQLiteDatabase checkDB = null;
                    checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);

                    Cursor value = checkDB.rawQuery("SELECT * FROM employee WHERE _id='"+ countryID +"'", null);

                    String test = "";
                    if(value.moveToFirst())
                            test =  value.getInt(0) + ": " + value.getString(1);
                    while(value.moveToNext()){
                            test += ";" + value.getInt(0) + ": " + value.getString(1);
                    }
                    return value;
            }
    }

尝试实施此

questionList = (ListView) findViewById (R.id.list);
sample(typedText);

questionList.setOnItemClickListener(
        new OnItemClickListener()
        {                   
            public void onItemClick(AdapterView<?> arg0, View view,
                    int position, long id) {
                Intent intent = new Intent(All.this, com.second.app.Second.class);
                Cursor cursor = (Cursor) adapter.getItem(position);
                intent.putExtra("EMPLOYEE_ID", cursor.getInt(cursor.getColumnIndex("_id")));
                //Cursor cursor = (Cursor) adapter.getItem(position);
                //intent.putExtra("EMPLOYEE_ID", cursor.getInt(cursor.getColumnIndex("_id")));
                startActivity(intent);
            }   
        }       
);

编辑:

    public boolean onChildClick(ExpandableListView parent, View v, int groupPosition,
            int childPosition, long id) {
        // use groupPosition and childPosition to locate the current item in the adapter

            Intent intent = new Intent(Categories.this, com.second.app.Second.class);
            Cursor cursor = (Cursor) mscta.getItem(childPosition);
            intent.putExtra("EMPLOYEE_ID", cursor.getInt(cursor.getColumnIndex("_id")));
            //Cursor cursor = (Cursor) adapter.getItem(position);
            //intent.putExtra("EMPLOYEE_ID", cursor.getInt(cursor.getColumnIndex("_id")));
            startActivity(intent);

        return true;
    }

目前getChild(childPosition);输出错误

  

方法getItem(int)未定义类型   Categories.MySimpleCursorTreeAdapter