4

ImageViewを作成しました

ImageView _view;
ViewGroup _root;
public void CreateImageView() {
    _root = (ViewGroup) findViewById(R.id.root);
    for (int i = 0; i < 5; i++) {
        _view = new ImageView(this);
        RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(100, 100);
        layoutParams.leftMargin = 150;
        layoutParams.topMargin = 50;
        _view.setLayoutParams(layoutParams);
        _view.setId(i);
        _root.addView(_view);
    }
}

ID = 3のイメージビューをクリックすると、トーストが呼び出されます。どうすればこれを達成できますか?

4

3 に答える 3

5

imageview のような整数配列を取得_view = new ImageView[size];し、forloop初期化してタグを imageview に設定し、クリック イベントを処理しながら、int k = (Integer) v.getTag();このようにタグを取得して、ビューの正確なクリックを取得します。

ImageView _view;
      ViewGroup _root;
      public void CreateImageView()
      {
          _root = (ViewGroup)findViewById(R.id.root);
_view = new ImageView[5];
            for ( int i = 0; i< 5;i++)
            {
                _view[i] = new RadioButton(this);
                _view[i].setTag(i);
                RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(100, 100);
                layoutParams.leftMargin = 150;
                layoutParams.topMargin = 50;
                _view.setLayoutParams(layoutParams);
                _root.addView(_view[i]);
            }
      }

イベント#をクリック

 _view[j].setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub.
    int k = (Integer) v.getTag();

        if(k==3){
        Toast.makeText(this, "Your Message", Toast.LENGTH_LONG).show();
      }

    }
 }
于 2012-11-27T05:10:13.440 に答える
3

imageview id = 3 をクリックすると、Toast.maketext が呼び出されます。

次のようなものをループに追加します。

if(i == 3) {
    _view.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(getBaseContext(), "Message", Toast.LENGTH_LONG).show();
        }
    });
}
于 2012-11-27T05:03:30.333 に答える
1

何を達成しようとしているのか正確にはわかりませんが、次のスニペットを試すことができます。

ImageView imgView = (ImageView) _root.findViewById(3);

imgView.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        Toast.makeText(MainActivity.this, "Hello World from image 3",
        Toast.LENGTH_SHORT).show();

    }
});
于 2012-11-27T05:23:31.387 に答える