我正在使用 MergeAdapter 显示带有节标题的列表。此列表显示正常,但有时 getView 方法中的某些内容有时不应该被触发。
这是触发的一点。
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
...
try {
JSONObject thisRow = items.get(position);
...
View.OnClickListener myListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getContext(), ID, Toast.LENGTH_SHORT).show();
}
};
JSONObject alterations = thisRow.getJSONArray("alteration").getJSONObject(0);
// This if statement gets trigger when it shouldn't
if (!alterations.getString("text").equals("false")) {
CharSequence currText = time.getText();
time.setText(currText+" vs" +ID);
Log.d("FUApp", "Alterations 'text' isn't false at "+ID);
Button alter = (Button) centreView.findViewById(R.id.is_alt);
String s = String.valueOf(position);
alter.setText(s);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
alter.setLayoutParams(lp);
alter.setOnClickListener(myListener);
}
...
return centreView;
}
我设置了一个标签来显示位置的值,这是我的应用程序的屏幕截图。
如您所见,按钮显示的位置是 43,按钮根本不应该显示在那里。
我完全不知道为什么会这样。谁能帮我解决这个问题?
编辑:当位置(例如 35)离开视图时,似乎是在进入屏幕的行上触发了 if 语句。仍然不确定如何阻止它出现。