1
for ( int i = 0; i < responses.size(); i++ )
    {
        Button btn = new Button( this );
        btn.setText( guideStep.getResponse( i ).getTitle() );
        btn.setOnClickListener(new OnClickListener() {
            public void onClick( View v )
            {
                try
                {
                    //NextStep(guideStep.getStep(), guideStep.getSession(), guideStep.getResponse( i ).getId() );
                }
                catch( Exception e )
                {
                    e.printStackTrace();
                }
            }
        });
        linearLayout.addView( btn );
    }

次のコードを見てください。線形レイアウトにボタンを動的に追加しています。また、動的に、各ボタンのonClickイベントを変更する必要があります。そのためには、ループからのカウンターと、ループなしからもguideStepオブジェクトを保存するための何らかの方法が必要です。

これを行う方法はありますか?

4

3 に答える 3

1

ボタンのメソッドを使用してから、のsetTag(your_id)メソッドでIDを取得できgetTag()ますOnClick

于 2011-09-06T09:31:48.587 に答える
0
for ( int i = 0; i < responses.size(); i++ )
{
    final int fin_i = i;
    ...
    btn.setOnClickListener(new OnClickListener() {
        public void onClick( View v )
        {
           // Use fin_i 
        });
    ...
}
于 2011-09-06T08:56:32.857 に答える
0
for ( int i = 0; i < responses.size(); i++ )
{
     final int id = i; // save your variable

     ...
     try
     {
       NextStep(guideStep.getStep(), guideStep.getSession(), 
            guideStep.getResponse( id ).getId() ); // use it
     }
     ....
}
于 2011-09-06T08:57:10.070 に答える