2

次のlistView リストビューの例 onItemClickListenerがあります-正常に動作します。カスタムアダプターのgetViewに入れたonClickメソッド。しかし、うまく機能しません。位置 ==0 の場合にのみ機能します。

public class mySCAdapter extends SimpleCursorAdapter implements OnClickListener {
final String LOG_TAG = "myLogs";
LayoutInflater inflater;
public mySCAdapter(Context context, int layout, Cursor c, String[] from,
        int[] to) {

    super(context, layout, c, from, to);
    inflater = LayoutInflater.from( context );
    // TODO Auto-generated constructor stub
}

@Override
public View getView( int position, View convertView, ViewGroup parent) {
    View v = null;

    if( convertView != null )
        v = convertView;
    else
        v = inflater.inflate( R.layout.add_program_ex_list_item, parent, false);
    ImageButton button = (ImageButton) v
            .findViewById(R.id.add_program_exercise_list);
    button.setTag(position);
    button.setOnClickListener(this); 


    return super.getView(position, convertView, parent);
}

@Override
public void onClick(View v) {
    Log.d(LOG_TAG, "It works, pos=" + v.getTag());

}
}
4

4 に答える 4

1

カスタム アダプタ mySCAdapter.Return から getView メソッドからデフォルト ビューを返していると思います。呼び出すのではなく、カスタマイズされたビューを返します return super.getView(position, convertView, parent);

@Override
public View getView( int position, View convertView, ViewGroup parent) {
    View v = null;

    if( convertView != null )
        v = convertView;
    else
        v = inflater.inflate( R.layout.add_program_ex_list_item, parent, false);
    ImageButton button = (ImageButton) v
            .findViewById(R.id.add_program_exercise_list);
    button.setTag(position);
    button.setOnClickListener(this); 


    return v;
}
于 2013-06-24T11:45:28.303 に答える