我listView
有两个textView
和一个button
。 onClick
button
我要自动更改textView
的值。我有arrayList
只存储了其中一个textView
值,而不是另一个textView
的存储值。我获得了按钮点击的位置,但不知道如何自动更改textView
的值。请帮我解决这个问题。我看到了很多其他的答案,但无法找到解决方案。
textview1
| button
| textview2
|
*
button1
| button2
这是格式。 onclick
的{{1}},它会显示另外两个按钮button
和button1
。如果我选择button2
,则会自动将button1
值更改为2,并将该行的button
值更改为20。如果我选择textview2
,则会更改button2
}值为5,button
值为50.
答案 0 :(得分:0)
点击按钮,它会再显示两个按钮button1和button2
要使两个按钮可见,您可以执行此操作
单击按钮时,使两个按钮可见
button.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
button1.setVisibility(View.VISIBLE);
button2.setVisibility(View.VISIBLE);
}
});
如果我选择button1,那么它会将按钮值更改为2
点击按钮1时
button1.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
button.setText("2");
}
});
答案 1 :(得分:0)
尝试这种方式:
制作一个模型(自定义)java类,如 DataModel.java : -
public class DataModel {
String tv1Value, tv2Value, btnValue;
boolean btnsVisibility;
public String getTv1Value() {
return tv1Value;
}
public void setTv1Value(String tv1Value) {
this.tv1Value = tv1Value;
}
public String getTv2Value() {
return tv2Value;
}
public void setTv2Value(String tv2Value) {
this.tv2Value = tv2Value;
}
public String getBtnValue() {
return btnValue;
}
public void setBtnValue(String btnValue) {
this.btnValue = btnValue;
}
public boolean isBtnsVisibility() {
return btnsVisibility;
}
public void setBtnsVisibility(boolean btnsVisibility) {
this.btnsVisibility = btnsVisibility;
}
}
然后在适配器中生成如下代码: -
1)首先获取定义ArrayList<DataModel> datamodels;
变量并在构造函数中获取该数组列表值。
2)在适配器的getView()
中添加以下编码: -
<强>更新强>
holder.button.setTag(position);
holder.button1.setTag(position);
holder.button2.setTag(position);
DataModel dataModel = datamodels.get(position);
holder.button.setText(dataModel.getBtnValue());
holder.textview2.setText(dataModel.getTv2Value());
if(dataModel.isBtnsVisibility()) {
holder.button1.setVisibility(View.VISIBLE);
holder.button2.setVisibility(View.VISIBLE);
}
else {
holder.button1.setVisibility(View.GONE);
holder.button2.setVisibility(View.GONE);
}
holder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = (int) v.getTag();
DataModel singleDataModel = datamodels.get(pos);
singleDataModel.setBtnsVisibility(true);
datamodels.set(pos,singleDataModel);
notifyDataSetChanged();
}
});
holder.button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = (int) v.getTag();
DataModel singleDataModel = datamodels.get(pos);
singleDataModel.setBtnValue("2");
singleDataModel.setTv2Value("20");
datamodels.set(pos,singleDataModel);
notifyDataSetChanged();
}
});
holder.button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = (int) v.getTag();
DataModel singleDataModel = datamodels.get(pos);
singleDataModel.setBtnValue("5");
singleDataModel.setTv2Value("50");
datamodels.set(pos,singleDataModel);
notifyDataSetChanged();
}
});