0

ExpandableListActivityText每个项目中都有。如何获取点击列表项的文本?

这是我的做法:

        groupData = application.getFirstLayer();
        String groupFrom[] = new String[] {"groupName"};
        int groupTo[] = new int[] {android.R.id.text1};

        childData = application.getSecondLayer();
        String childFrom[] = new String[] {"levelTwoCat"};
        int childTo[] = new int[] {android.R.id.text1};

        adapter = new SimpleExpandableListAdapter(
            this,
            groupData,
            android.R.layout.simple_expandable_list_item_1,
            groupFrom,
            groupTo,
            childData,
            android.R.layout.simple_list_item_1,
            childFrom,
            childTo);


public boolean onChildClick(android.widget.ExpandableListView parent,
            View v, int groupPosition, int childPosition, long id) {}

我必须写什么onChildClick才能看到当前项目的文本?

4

1 回答 1

1

最简单的方法是直接从您单击的视图中获取它。您尚未显示行 XML,因此以下代码将假设您有一个带有 TextView 的 LinearLayout 作为您的行。

public boolean onChildClick(android.widget.ExpandableListView parent, 
        View v, int groupPosition, int childPosition, long id) {

            TextView exptv = (TextView)v.findViewById(R.id.yourtextview); //  Get the textview holding the text
            String yourText = exptv.getText().toString();  // Get the text from the view and put it in a string
            // use string as you need to
}

如果 Layout只是一个 textview,你可以直接进入,String yourText = v.getText().toString();因为传入的 View v 将是你需要的 TextView。

编辑

正如 Jason Robinson 在他的评论中指出的那样,您正在使用android.R.layout.simple_list_item_1您的子布局,因为这只是一个 TextView,它简化了您需要的代码:

public boolean onChildClick(android.widget.ExpandableListView parent, 
        View v, int groupPosition, int childPosition, long id) {

            String yourText = v.getText().toString();  // Get the text from the view and put it in a string
            // use string as you need to
}
于 2012-06-13T15:13:38.173 回答