-1
我基于数据库中的许多数据创建编辑文本。我的问题是如何检索从循环创建的编辑文本中的文本并仅实例化textview?从循环中获取编辑文本值
DBAdapter db = new DBAdapter(this);
db.open();
Cursor c = db.getUserExercises(Integer.parseInt(id), musclegroup);
tag = new int[c.getCount()];
int n = 0;
if(c.moveToFirst())
{
do{
LinearLayout linearlayout = new LinearLayout(this);
TextView tv = new TextView(this);
tv.setText(c.getString(0));
tv.setTextColor(Color.DKGRAY);
tv.setPadding(10, 10, 10, 10);
et = new EditText(this);
et.setPadding(5, 5, 5, 5);
et.setText(c.getString(1));
et.setEms(2);
et.setGravity(Gravity.CENTER);
InputFilter maxLengthFilter = new InputFilter.LengthFilter(1);
et.setFilters(new InputFilter[]{ maxLengthFilter });
update = new ImageButton(this);
update.setBackgroundResource(R.drawable.updatebtn);
update.setTag(tag[n++]);
update.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
for(int i=0;i<tag.length;i++)
{
if(Integer.parseInt(update.getTag().toString()) == i)
{
Toast.makeText(getBaseContext(), update.getTag().toString(), Toast.LENGTH_SHORT).show();
}
}
}
});
TextView border1 = new TextView(this);
border1.setHeight(2);
border1.setBackgroundResource(android.R.color.darker_gray);
mainLayout.addView(linearlayout);
linearlayout.addView(tv);
linearlayout.addView(et);
linearlayout.addView(update);
mainLayout.addView(border1);
}while(c.moveToNext());
}
db.close();
我在这里尝试了一些东西,但它似乎并没有工作。另一件事,我如何检查编辑文本是否为空?例如:编辑文本有三个数字,当我按下键盘上的后退按钮时,数字将被删除。 editext是否为空?还是等于“”或“”?谢谢!
不错的答案,嗯如果我要将某个按钮与某个数据关联起来。是否有可能使多行的集合?例如:button1获取editext1和textview1中的值,并且它们显示为horizontaly,另一个editext2和textview2等等的按钮。有任何想法吗? – ljpv14
因此,如果迭代到该行,index [0]与button1和editext1和textview1中的日期有关。 – ljpv14
'1.'如果你有相应的集合,例如。按钮arraylist,edittext arraylist等,那么你可以简单地通过它们的索引来引用你需要的任何东西。如果它们总是相应的(button1与editext1相匹配),它会很容易。 '2,是的,但是这些名字不会有。我想你会在你的迭代中使用“经典”循环,你不应该一次做这个具体的索引。 – mango