0

私はListviewすべての行に a とa を持っていButtonます。を押すと、ButtonToast表示されます。

onItemClickListenerを自分に設定する方法は既に知っていますが、行内Listの単一に反応する方法がわかりません。Buttonこれは今までの私のコードです。あまり変更する必要がなければ素晴らしいでしょう:)

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    if(arg2 == 0){                                  
        Context context = getApplicationContext();
        String text = "Toast";
        Toast meinToast = Toast.makeText( context, text, Toast.LENGTH_SHORT);
        meinToast.show();                               
    }
}
4

3 に答える 3

1

アダプタでこれを試してください:

@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
    View row = convertView;
    YourWrapper wrapper = null;

    if (row == null)
    {
        row = inflater.inflate(R.layout.layout, parent, false);
        wrapper = new YourWrapper (row);
        row.setTag(wrapper);
    }
    else
        wrapper = (YourWrapper) row.getTag();

    wrapper.getButton().setOnClickListener(new OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            // What you want
        }
    });

    return row;
}
于 2012-11-19T18:48:23.250 に答える
0

OnClickListenerボタンごとにが必要です。

これを読んで、OnClickListeners を作成し、ボタンや他のオブジェクトにアタッチすることができます。 http://developer.android.com/guide/topics/ui/ui-events.html

OnclickListener()try to writeを実装したくない場合に問題がView.OnClickListener.発生した場合 ボタンがクリックされたときに発生するアクションはOnClick(){//foo}(自動的に生成されます) に移動します。

次に、 onclicklistener を使用して設定しますbutton.setOnclickListener(yourOnclickListener);

編集

Button mButton = ...

 mButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                //foo
            }
        });
于 2012-11-19T16:16:40.977 に答える
0

これは、カスタム アダプターで ListView を使用する方法の優れたチュートリアルです。

http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/

したがって、カスタム Adapter クラスでそのような関数を使用できます。

public View getView(int position, View convertView, ViewGroup parent) {
        View vi=convertView;
        final Button button = (Button) vi.findViewById(R.id.button_id);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
            }
        });
        return vi;
    }

さらにロジックを追加すると、リストに表示された各ボタンのカスタム イベントを作成できます。

于 2012-11-19T16:22:05.120 に答える