BaseExpandableListAdapter和GetChildView - 自定义对话框限制?

时间:2011-11-08 00:08:31

标签: android events expandablelistview expandablelistadapter customdialog

第一个问题和Android的新手 - 希望这意味着有一个简单的解决方案,我只是完全错过了 - 这里是希望......在这里。

我正在使用自定义BaseExpandableListAdapter来驱动ExpandableListView,在适配器中,我覆盖了GetChildView方法以显示带有5个按钮的自定义子项。

public class ExpandableListAdapter extends BaseExpandableListAdapter {    

private Context context;

private ArrayList<String> groups;

private ArrayList<ArrayList<String>> children;

private int setCount;
private int currentSetNumber;

...

public View getChildView(int groupPosition, int childPosition, boolean isLastChild,
        View convertView, ViewGroup parent) {

    if (convertView == null) {
        LayoutInflater infalInflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = infalInflater.inflate(R.layout.child_layout, null);
        parent.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
    }

    Button bPlus = (Button) convertView.findViewById(R.id.btnAddSet);

    if(childPosition == 0){
        Button bSetPlace = (Button) convertView.findViewById(R.id.bSetPlace1);
        bSetPlace.setText("Set 1");

        bSetPlace.setOnClickListener(new View.OnClickListener(){

            ***public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent myIntent = new Intent(context,WeightEntryDialog.class);
                context.startActivity(myIntent);    
            }***
        });

... remainder of method (not relevant)

到目前为止没有任何问题,但我似乎陷入了放置在子按钮上的onClick方法。我想要做的是从我正在启动的意图(对话框)中获得结果。理想情况下,我会调用startActivityForResult,但是从上下文中没有这样的方法。我也受限于匿名类的范围。对话框正在显示,但我无法从中获取任何值,而且由于缺乏反馈,我无法确定对话框何时关闭。

我想从对话框中返回两个整数。不确定任何对话框代码是否相关,但这里是标题。

public class WeightEntryDialog extends Activity {

我是否已经进入BaseExpandableListAdapter类太远了?我试图在适配器中做一些我应该在其他地方做的事情,对我来说重要的是保持对可扩展列表中的子项的控制。希望我很清楚,有人可以提供一些指导。非常感谢。

1 个答案:

答案 0 :(得分:0)

目前,我决定通过直接从适配器类膨胀对话来解决我的问题,而不是启动一个单独的活动,我已经创建了一个自定义监听器来在对话框和适配器之间共享一些数据。 / p>