如何在android中获得动态创建的Imageview或textview点击id或位置?

如何在android中获得动态创建的Imageview或textview点击id或位置?,android,dynamic,android-imageview,Android,Dynamic,Android Imageview,我想在scrollview中创建动态imageview和按钮,因此我想获取动态创建的单击项的id。我如何获取此项?这是我的代码 公共类TestActivity扩展了活动实现OnClickListener { private static final String TAG_DATA=“DATA”; 私有静态最终字符串标记_advision=“advisments”; 私有静态最终字符串标记&u ADVERTISEID=“advt\u id”; 字符串广告ID; 私有静态最终字符串标记\u SHOW

我想在scrollview中创建动态imageview和按钮,因此我想获取动态创建的单击项的id。我如何获取此项?这是我的代码

公共类TestActivity扩展了活动实现OnClickListener {

private static final String TAG_DATA=“DATA”;
私有静态最终字符串标记_advision=“advisments”;
私有静态最终字符串标记&u ADVERTISEID=“advt\u id”;
字符串广告ID;
私有静态最终字符串标记\u SHOWTEXT=“SHOWTEXT”;
字符串显示文本;
私有静态最终字符串TAG\u PRODUCTINFO=“product\u info”;
字符串productinfo;
私有静态最终字符串标记_THUMBIMAGE=“thumbsrc”;
字符串图像;
私有静态最终字符串标记_DISTANCE=“DISTANCE”;
串距;
私有静态最终字符串标记_STIPCIATED=“STIPCIATED”;
有柄的弦;
ArrayList ListAdvertised=新的ArrayList();
ArrayList listadvertise1=新的ArrayList();
ArrayList listadvertise2=新的ArrayList();
//家庭广告的Webservice参数
字符串url;
字符串fbid;
弦纬度;
弦经度;
字符串传递距离;
串偏移量;
//stipciated广告的Webservice参数
字符串用户标识;
线状具柄;
屏幕高度;
int屏幕宽度;
警报对话框警报对话框;
私有进程对话;
图像查看图像菜单;
滚动视图滚动视图3;
ImageView im;
线性布局homelistlayout1;
线性布局homelistlayout2;
公共静态最终int img=50000;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(窗口。功能\u无\u标题);
setContentView(R.layout.test);
alertDialog=新建alertDialog.Builder(this.create();
DisplayMetrics screensize=新的DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(屏幕大小);
屏幕高度=屏幕大小。高度像素;
screenwidth=screensize.widthPixels;
Log.e(“屏幕高度”,“--->”+屏幕高度);
Log.e(“屏幕宽度”,“--->”+屏幕宽度);
RelativeLayout headerlayout=(RelativeLayout)findViewById(R.id.headerlayout);
HeaderLayout.setLayoutParams(新的RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,((屏幕宽度*8)/100)+10));
if(CheckConnection.getInstance(this).isOnline(this))
{
//新建HomeAsyncTask()。执行(“”);
}
其他的
{
警惕();
}
imagemenu=(ImageView)findViewById(R.id.imagemenu);
setOnClickListener(新的OnClickListener()
{
公共void onClick(视图v)
{
意向i=新意向(TestActivity.this,HorizontalActivity.class);
星触觉(i);
}
});
scrollView3=(ScrollView)findViewById(R.id.scrollView3);
scrollView3.post(新的Runnable(){
公开募捐
{
scrollView3.scrollTo(0200);
}
});
homelistlayout1=(LinearLayout)findViewById(R.id.homelistlayout1);
homelistlayout1.setPadding(0,100,0,0);
homelistlayout2=(LinearLayout)findViewById(R.id.homelistlayout2);
对于(int i=0;i您可以在创建视图时
setId()
,然后这就是他的ID。

只需更改代码

  • 您必须在图像视图的for循环中添加
    im.setOnClickListener(this);
  • 删除下面的方法

    im.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                ImageView iv=(ImageView) v;
                Log.e("sfas","-->"+iv.getId());
            }
        });
    
  • 重写onClick(),因为您已经在活动中实现了
    onclicklistener

  • 查看下面的代码,(并与您的代码匹配以了解实际问题)

    公共类TestActivity扩展活动实现OnClickListener
    {
    私有静态最终字符串标记_DATA=“DATA”;
    私有静态最终字符串标记_advision=“advisments”;
    私有静态最终字符串标记&u ADVERTISEID=“advt\u id”;
    字符串广告ID;
    私有静态最终字符串标记\u SHOWTEXT=“SHOWTEXT”;
    字符串显示文本;
    私有静态最终字符串TAG\u PRODUCTINFO=“product\u info”;
    字符串productinfo;
    私有静态最终字符串标记_THUMBIMAGE=“thumbsrc”;
    字符串图像;
    私有静态最终字符串标记_DISTANCE=“DISTANCE”;
    串距;
    私有静态最终字符串标记_STIPCIATED=“STIPCIATED”;
    有柄的弦;
    ArrayList ListAdvertised=新的ArrayList();
    ArrayList listadvertise1=新的ArrayList();
    ArrayList listadvertise2=新的ArrayList();
    //家庭广告的Webservice参数
    字符串url;
    字符串fbid;
    弦纬度;
    弦经度;
    字符串传递距离;
    串偏移量;
    //stipciated广告的Webservice参数
    字符串用户标识;
    线状具柄;
    屏幕高度;
    int屏幕宽度;
    警报对话框警报对话框;
    私有进程对话;
    图像查看图像菜单;
    滚动视图滚动视图3;
    私有ListView listViewLeft;
    私有ListView listViewRight;
    int[]左视图;
    int[]右视图;
    ImageView im;
    线性布局homelistlayout1;
    线性布局homelistlayout2;
    公共静态最终int img=50000;
    @凌驾
    创建时的公共void(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    requestWindowFeature(窗口。功能\u无\u标题);
    setContentView(R.layout.test);
    alertDialog=新建alertDialog.Builder(this.create();
    DisplayMetrics screensize=新的DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(屏幕大小);
    屏幕高度=屏幕大小。高度像素;
    screenwidth=screensize.widthPixels;
    Log.e(“屏幕高度”,“--->”+屏幕高度);
    Log.e(“屏幕宽度”,“--->”+屏幕
    
    im.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                ImageView iv=(ImageView) v;
                Log.e("sfas","-->"+iv.getId());
            }
        });
    
    public class TestActivity extends Activity implements OnClickListener 
    {
        private static final String TAG_DATA="data";
        private static final String TAG_ADVERTISE="advertisments";
        private static final String TAG_ADVERTISEID="advt_id";
        String advertiseid;
        private static final String TAG_SHOWTEXT="showtext";
        String showtext;
        private static final String TAG_PRODUCTINFO="product_info";
        String productinfo;
    
        private static final String TAG_THUMBIMAGE="thumbsrc";
        String thumbimage;
    
        private static final String TAG_DISTANCE="distance";
        String distance;
    
        private static final String TAG_STIPCIATED="stipciated";
        String stipciated;
    
        ArrayList<HashMap<String, String>> listadvertise = new ArrayList<HashMap<String,String>>();
        ArrayList<HashMap<String, String>> listadvertise1 = new ArrayList<HashMap<String,String>>();
        ArrayList<HashMap<String, String>> listadvertise2 = new ArrayList<HashMap<String,String>>();
        // Webservice parameter for home advertise
        String url;
        String fbid;
        String latitude;
        String longitude;
        String passdistance;
        String offset;
    
        // Webservice parameter for stipciated advertise
    
        String userid;
        String stipciate;
    
        int screenheight;
        int screenwidth;
        AlertDialog alertDialog;
        private ProgressDialog progressDialog;
        ImageView imagemenu;
        ScrollView scrollView3;
    
    
        private ListView listViewLeft;
        private ListView listViewRight;
    
        int[] leftViewsHeights;
        int[] rightViewsHeights;
    
        ImageView im;
        LinearLayout homelistlayout1;
        LinearLayout homelistlayout2;
         public static final int img=50000;
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.test);
    
            alertDialog = new AlertDialog.Builder(this).create();
            DisplayMetrics screensize= new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(screensize);
    
            screenheight=screensize.heightPixels;
            screenwidth=screensize.widthPixels;
    
            Log.e("Screen Height","---->"+screenheight);
            Log.e("Screen Width ","---->"+screenwidth);
    
            RelativeLayout headerlLayout = (RelativeLayout)findViewById(R.id.headerlayout);
            headerlLayout.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,((screenwidth*8)/100)+10));
    
            if(CheckConnection.getInstance(this).isOnline(this))
            {
    
            //  new HomeAsyncTask().execute("");
            }
            else
            {
                alert();
            }
    
            imagemenu=(ImageView)findViewById(R.id.imagemenu);
            imagemenu.setOnClickListener(new OnClickListener() 
            {
                public void onClick(View v)
                {
                        Intent i = new Intent(TestActivity.this,HorizontalActivity.class);
                        startActivity(i);
                }
            });
    
          scrollView3=(ScrollView)findViewById(R.id.scrollview3);
            scrollView3.post(new Runnable() {
                public void run()
                {
                    scrollView3.scrollTo(0, 200);
                }
            });
    
            homelistlayout1=(LinearLayout)findViewById(R.id.homelistlayout1);
            homelistlayout1.setPadding(0, 100, 0, 0);
            homelistlayout2=(LinearLayout)findViewById(R.id.homelistlayout2);
    
            for(int i=0;i<12;i++)
            {
                im= new ImageView(TestActivity.this);
                im.setLayoutParams(new LinearLayout.LayoutParams(200, 200));
                im.setOnClickListener(this); 
                if(i%2==0)
                {
                        im.setImageResource(R.drawable.adv);
                        im.setId(i);
                        homelistlayout1=(LinearLayout)findViewById(R.id.homelistlayout1);
                        homelistlayout1.addView(im);
                }
                else
                {
                    im.setImageResource(R.drawable.adv2);
                    im.setId(i);
                    homelistlayout2=(LinearLayout)findViewById(R.id.homelistlayout2);
                    homelistlayout2.addView(im);
                }
            }   
           }
       }
    
    @Override
    public void onClick(View v) {
      Log.e("Clicked","----->"+v.getId());
      switch (v.getId()) 
       {
        case 1:
            Log.e("Clicked","----->"+v.getId());
            break;
        case 2:
            break;
        .
        .
        .
        default:
        break;
     }
    }