如何在android中获得动态创建的Imageview或textview点击id或位置?
我想在scrollview中创建动态imageview和按钮,因此我想获取动态创建的单击项的id。我如何获取此项?这是我的代码 公共类TestActivity扩展了活动实现OnClickListener {如何在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
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;
}
}