2012-11-27 81 views
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的ImageView的點擊,敬酒應該叫。我怎樣才能做到這一點?

回答

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(); 
     } 
    }); 
} 
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]); 
      } 
     } 

Click事件#

_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(); 
     } 

    } 
} 
1

不知道究竟你試圖acheive.But你可以試試下面的代碼片段。

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(); 

    } 
});