我应该如何在ANDROID中获取动态视图的位置 [英] How should I will get the position of the dynamic view in ANDROID

查看:214
本文介绍了我应该如何在ANDROID中获取动态视图的位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下是我动态创建的视图,我已经添加了两行,但我无法获取该行的位置,所以我可以得到它。我已经创建了一个视图的四个文本视图,但是如何获得该视图的位置?



点击一个按钮,我添加了下面提到的代码,

 私人LinearLayout llAddMember; 
llAddMember =(LinearLayout)findViewById(R.id.llAddMember);
AddFamilyMemberModel familyMemberModel = new AddFamilyMemberModel();
familyMemberModel.setStrMemberName(strMemberName);
familyMemberModel.setStrGender(strGender);
familyMemberModel.setStrMemberRelation(strMemberRelation);
familyMemberModel.setStrMemberAge(strMemberAge);
arrAddFamilyMember.add(familyMemberModel);

LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
llAddMember.setBackgroundColor(getResources()。getColor(android.R.color.white));

TextView txtResMemberName = new TextView(RegistrationPatientActivity.this);
txtResMemberName.setLayoutParams(lparams);
txtResMemberName.setText(Member Name:+ familyMemberModel.getStrMemberName());
txtResMemberName.setTypeface(Typeface.createFromAsset(getAssets(),Roboto-Regular.ttf));
txtResMemberName.setTextSize(14);
txtResMemberName.setTextColor(Color.parseColor(#9C9C9C));
txtResMemberName.setSingleLine(true);
llAddMember.addView(txtResMemberName);
lparams.setMargins(50,5,40,0);

查看view1 = new View(RegistrationPatientActivity.this);
LayoutParams lparamsView1 = new LayoutParams(LayoutParams.WRAP_CONTENT,2);
view1.setLayoutParams(lparamsView1);
view1.setBackgroundColor(Color.parseColor(#DEDDDA));
llAddMember.addView(view1);
lparamsView1.setMargins(50,10,0,0);

TextView txtResGender = new TextView(RegistrationPatientActivity.this);
txtResGender.setLayoutParams(lparams);
txtResGender.setText(Member Gender:+ familyMemberModel.getStrGender());
txtResGender.setTypeface(Typeface.createFromAsset(getAssets(),Roboto-Regular.ttf));
txtResGender.setTextSize(14);
txtResGender.setTextColor(Color.parseColor(#9C9C9C));
llAddMember.addView(txtResGender);
lparams.setMargins(50,10,0,0);

查看view2 = new View(RegistrationPatientActivity.this);
LayoutParams lparamsView2 = new LayoutParams(LayoutParams.WRAP_CONTENT,2);
view2.setLayoutParams(lparamsView2);
view2.setBackgroundColor(Color.parseColor(#DEDDDA));
llAddMember.addView(view2);
lparamsView2.setMargins(50,10,0,0);

TextView txtResMemberRelation = new TextView(RegistrationPatientActivity.this);
txtResMemberRelation.setLayoutParams(lparams);
txtResMemberRelation.setText(Member Relation:+ familyMemberModel.getStrMemberRelation());
txtResMemberRelation.setTypeface(Typeface.createFromAsset(getAssets(),Roboto-Regular.ttf));
txtResMemberRelation.setTextSize(14);
txtResMemberRelation.setTextColor(Color.parseColor(#9C9C9C));
llAddMember.addView(txtResMemberRelation);
lparams.setMargins(50,10,0,0);

查看view3 = new View(RegistrationPatientActivity.this);
LayoutParams lparamsView3 = new LayoutParams(LayoutParams.WRAP_CONTENT,2);
view3.setLayoutParams(lparamsView3);
view3.setBackgroundColor(Color.parseColor(#DEDDDA));
llAddMember.addView(view3);
lparamsView3.setMargins(50,10,0,0);

TextView txtResMemberAge = new TextView(RegistrationPatientActivity.this);
txtResMemberAge.setLayoutParams(lparams);
txtResMemberAge.setText(Member Age+ familyMemberModel.getStrMemberAge());
txtResMemberAge.setTypeface(Typeface.createFromAsset(getAssets(),Roboto-Regular.ttf));
txtResMemberAge.setTextSize(14);
txtResMemberAge.setTextColor(Color.parseColor(#9C9C9C));
llAddMember.addView(txtResMemberAge);
lparams.setMargins(50,10,0,0);

View view = new View(RegistrationPatientActivity.this);
LayoutParams lparamsView = new LayoutParams(LayoutParams.WRAP_CONTENT,4);
view.setLayoutParams(lparamsView);
view.setBackgroundColor(Color.parseColor(#006D67));
llAddMember.addView(view);
lparamsView.setMargins(0,10,0,0);


解决方案

您正在使用列表视图,对吗?



在你的活动/片段...

  listview.setOnItemClickListener (new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent,View view,int position,long id){
// do stuff('position'已经点击了)
}
});


Below is the view that I have created dynamically and I have added two rows but I can't get the position of that particular row, so I could I get it. I have created four textviews with one view, but how can I get the position of that particular view?

On click of a button I have added the code mentioned below,

private LinearLayout llAddMember;
llAddMember = (LinearLayout) findViewById(R.id.llAddMember);
AddFamilyMemberModel familyMemberModel = new AddFamilyMemberModel();
                familyMemberModel.setStrMemberName(strMemberName);
                familyMemberModel.setStrGender(strGender);
                familyMemberModel.setStrMemberRelation(strMemberRelation);
                familyMemberModel.setStrMemberAge(strMemberAge);
                arrAddFamilyMember.add(familyMemberModel);

                LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                llAddMember.setBackgroundColor(getResources().getColor(android.R.color.white));

                TextView txtResMemberName = new TextView(RegistrationPatientActivity.this);
                txtResMemberName.setLayoutParams(lparams);
                txtResMemberName.setText("Member Name: " +familyMemberModel.getStrMemberName());
                txtResMemberName.setTypeface(Typeface.createFromAsset(getAssets(),"Roboto-Regular.ttf"));
                txtResMemberName.setTextSize(14);
                txtResMemberName.setTextColor(Color.parseColor("#9C9C9C"));
                txtResMemberName.setSingleLine(true);
                llAddMember.addView(txtResMemberName);
                lparams.setMargins(50, 5, 40, 0);

                View view1 = new View(RegistrationPatientActivity.this);
                LayoutParams lparamsView1 = new LayoutParams(LayoutParams.WRAP_CONTENT, 2);
                view1.setLayoutParams(lparamsView1);
                view1.setBackgroundColor(Color.parseColor("#DEDDDA"));
                llAddMember.addView(view1);
                lparamsView1.setMargins(50, 10, 0, 0);

                TextView txtResGender = new TextView(RegistrationPatientActivity.this);
                txtResGender.setLayoutParams(lparams);
                txtResGender.setText("Member Gender: " +familyMemberModel.getStrGender());
                txtResGender.setTypeface(Typeface.createFromAsset(getAssets(), "Roboto-Regular.ttf"));
                txtResGender.setTextSize(14);
                txtResGender.setTextColor(Color.parseColor("#9C9C9C"));
                llAddMember.addView(txtResGender);
                lparams.setMargins(50, 10, 0, 0);

                View view2 = new View(RegistrationPatientActivity.this);
                LayoutParams lparamsView2 = new LayoutParams(LayoutParams.WRAP_CONTENT, 2);
                view2.setLayoutParams(lparamsView2);
                view2.setBackgroundColor(Color.parseColor("#DEDDDA"));
                llAddMember.addView(view2);
                lparamsView2.setMargins(50, 10, 0, 0);

                TextView txtResMemberRelation = new TextView(RegistrationPatientActivity.this);
                txtResMemberRelation.setLayoutParams(lparams);
                txtResMemberRelation.setText("Member Relation: " +familyMemberModel.getStrMemberRelation());
                txtResMemberRelation.setTypeface(Typeface.createFromAsset(getAssets(), "Roboto-Regular.ttf"));
                txtResMemberRelation.setTextSize(14);
                txtResMemberRelation.setTextColor(Color.parseColor("#9C9C9C"));
                llAddMember.addView(txtResMemberRelation);
                lparams.setMargins(50, 10, 0, 0);

                View view3 = new View(RegistrationPatientActivity.this);
                LayoutParams lparamsView3 = new LayoutParams(LayoutParams.WRAP_CONTENT, 2);
                view3.setLayoutParams(lparamsView3);
                view3.setBackgroundColor(Color.parseColor("#DEDDDA"));
                llAddMember.addView(view3);
                lparamsView3.setMargins(50, 10, 0, 0);

                TextView txtResMemberAge = new TextView(RegistrationPatientActivity.this);
                txtResMemberAge.setLayoutParams(lparams);
                txtResMemberAge.setText("Member Age: " +familyMemberModel.getStrMemberAge());
                txtResMemberAge.setTypeface(Typeface.createFromAsset(getAssets(), "Roboto-Regular.ttf"));
                txtResMemberAge.setTextSize(14);
                txtResMemberAge.setTextColor(Color.parseColor("#9C9C9C"));
                llAddMember.addView(txtResMemberAge);
                lparams.setMargins(50, 10, 0, 0);

                View view = new View(RegistrationPatientActivity.this);
                LayoutParams lparamsView = new LayoutParams(LayoutParams.WRAP_CONTENT, 4);
                view.setLayoutParams(lparamsView);
                view.setBackgroundColor(Color.parseColor("#006D67"));
                llAddMember.addView(view);
                lparamsView.setMargins(0, 10, 0, 0);

解决方案

You're using a listview for this, right?

In your activity/fragment...

listview.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        // do stuff ('position' is the position of the item you've clicked on)
    }
});

这篇关于我应该如何在ANDROID中获取动态视图的位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆