android可扩展列表需要帮助

时间:2011-06-03 04:20:29

标签: android button android-intent expandablelistview

public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
    View v = null;
    if( convertView != null )
        v = convertView;
    else
        v = inflater.inflate(R.layout.child_row, parent, false); 
    Color c = (Color)getChild( groupPosition, childPosition );
    TextView color = (TextView)v.findViewById( R.id.childname );
    if( color != null )
        color.setText( c.getColor() );
    TextView rgb = (TextView)v.findViewById( R.id.rgb );
    if( rgb != null )
        rgb.setText( c.getRgb() );
    //  CheckBox cb = (CheckBox)v.findViewById( R.id.check1 );
    //  cb.setChecked( c.getState() );
    Button btnPlay=(Button)v.findViewById(R.id.Play);
    Button btnDelete=(Button)v.findViewById(R.id.Delete);
    Button btnEmail=(Button)v.findViewById(R.id.Email);
    btnPlay.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            Log.i("TEST ", "play btn cliked");

            Intent i=new Intent(this,FindFilesByType.class);//THIS IS NOT ALLOWED IN MY CODE

        }
    });

    return v;
}

在上面的代码中,我编写了我的适配器类。 作为孩子,我的可解释列表中有3个按钮。 我想在按钮的click事件上调用另一个Java类, 所以,当我使用时:

Intent i=new Intent(this,FindFilesByType.class);

我得到了这个:

The constructor Intent(new View.OnClickListener(){}, Class<FindFilesByType>) is undefined
Remove arguments to match 'Intent'

我在做什么有什么问题?

3 个答案:

答案 0 :(得分:1)

Intent构造函数中的this对象是匿名OnClickListener类实例,而不是当前上下文。您需要做的是在该构造函数中使用当前上下文,如:

Intent i = new Itent(getContext(), FindFilesByType.class);

答案 1 :(得分:1)

在开始时,在onCreate()方法之前创建实例变量,如

public static InstanceTest instance;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    instance=this;
}

并在点击事件中调用您孩子的变量

public void onClick(View arg0) {
    Intent i=new Intent(instance,FindFilesByType.class);//This time it will be allowed
}

希望这可以提供帮助。

答案 2 :(得分:0)

public View getChildView(int groupPosition, int childPosition,
        boolean isLastChild, View convertView, ViewGroup parent) {
    View v = null;
    if (convertView != null)
        v = convertView;
    else
        v = inflater.inflate(R.layout.child_row, parent, false);
    Rington c = (Rington) getChild(groupPosition, childPosition);
    TextView color = (TextView) v.findViewById(R.id.childname);
    if (color != null)
        color.setText(c.getColor());
    TextView rgb = (TextView) v.findViewById(R.id.rgb);
    if (rgb != null)
        rgb.setText(c.getRgb());

    Button btnPlay = (Button) v.findViewById(R.id.Play);
    Button btnDelete = (Button) v.findViewById(R.id.Delete);
    Button btnEmail = (Button) v.findViewById(R.id.Email);
    btnPlay.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            //code

        }
    });
    btnDelete.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            //code

        }
    });
    btnEmail.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            //code
        }
    });

    return v;
}

上面的这个方法进入适配器类这对我来说是完全正常工作的代码:)