我有一个表视图,其中我通过xml这样填充行 TableLayout table =(TableLayout)findViewById(R.id.tblLayoutPop);
for(int i=0;i<3;i++){
TableRow row = (TableRow) LayoutInflater.from(Popup.this).inflate(R.layout.row, null);
row.setTag(i);
((TextView)row.findViewById(R.id.header)).setText("Some Text");
EditText ed= (EditText) row.findViewById(R.id.editText);
ed.setTag(i);
Button add= (Button) row.findViewById(R.id.buttonAdd);
add.setTag(i);
Button remove= (Button) row.findViewById(R.id.buttonRemove);
remove.setTag(i);
table.addView(row);
}
xml here看起来像
有3个这样的行,现在点击添加按钮我想增加其特定的编辑文本
为此我尝试了这个,先选择编辑文本,然后按标签
获取public void add(View v){
String tag = v.getTag().toString();
Log.d("TAG", tag);
int position = Integer.parseInt(tag);
View eds= findViewById(R.id.editText);
EditText ed= (EditText) eds.findViewWithTag(position);
ed.setText(tag);
}
这不起作用我需要一种方法来选择相应的编辑文本。怎么做
非常感谢任何帮助
由于
答案 0 :(得分:1)
这是未经测试但可能指向正确的方向
implement View.OnClickListener
在你的循环中点击事件到你的按钮视图
for(int i=0;i<3;i++){
TableRow row = (TableRow) LayoutInflater.from(Popup.this).inflate(R.layout.row, null);
row.setTag(i);
((TextView)row.findViewById(R.id.header)).setText("Some Text");
EditText ed= (EditText) row.findViewById(R.id.editText);
ed.setTag(i);
Button add= (Button) row.findViewById(R.id.buttonAdd);
add.setTag(i);
add.setOnClickListener(this)
Button remove= (Button) row.findViewById(R.id.buttonRemove);
remove.setTag(i);
remove.setOnClickListener(this);
table.addView(row);
}
然后在您的onClick(View view)
方法中,试试这个
@Override
public void onClick(View view) {
int viewId = view.getId();
if(viewId == R.id.buttonAdd && view.getTag().toString().equals("0")){
View parentView = view.getRootView();
EditText mEditText = (EditText)parentView.findViewWithTag("0");
int currentEditTextValue = Integer.parseInt(mEditText.getText().toString());
currentEditTextValue = currentEditTextValue + 1;
mEditText.setText(String.valueOf(currentEditTextValue));
}
// more conditions here ...
}
希望它能为您提供更多想法。如果你有任何问题,请问问题。
答案 1 :(得分:1)
看看你的xml文件
首先,将您的编辑文字标记更改为与按钮
不同的内容喜欢ed.setTag("ed"+i);
然后你可以从按钮的父视图中通过标签选择编辑文本。因为你已经按照线性布局分组按钮和编辑文本。
喜欢这个
EditText ed= (EditText) ((View) v.getParent()).findViewWithTag("ed"+tag);