ArrayAdapterを拡張するカスタムListAdapterがあります:
private class MyPrivateClassListAdapter extends ArrayAdapter<someObject> {
private ArrayList<someObject> items;
public MyPrivateClassListAdapter(Context context, int textViewResourceId, ArrayList<someObject> items) {
super(context, textViewResourceId, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null)
{
LayoutInflater vi = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//cashedHolder=new CashedValuesForListView(convertView);
v = vi.inflate(R.layout.some_xml, null);
}
someObject o = items.get(position);
if (o != null) {
TextView myTxt = (TextView) v.findViewById(R.id.myTextboxId);
myText.setText("some text");
}
return v;
}
}
このArrayAdapterは私のメインアクティビティ内にあるので、クリックするとメインアクティビティで呼び出します。
this.m_adapter = new MyPrivateClassListAdapter(getActivity(), R.layout.rows_to_fill, someObject);
myList.setAdapter(this.m_adapter);
これまでのところ良いですが、問題は、このメインアクティビティから、myListview内の値を変更する別のフラグメントを呼び出していることです(たとえば、特定の行に別のテキストを設定します)。
急いでリストビュー内の値を変更することができます(リストをスクロールした後、古い状態に戻ります):
int visiblePosition = myList.getFirstVisiblePosition();
View v = mylist.getChildAt(itemIndex - visiblePosition);
TextView mytextView = (TextView )v.findViewById(R.id.myTextboxId);
mytextView.setTxt("I ' va changed");
、これを行う適切な方法は何ですか(データが変更されたことをカスタムアダプタに通知します(インスタンス化されたフラグメントによって引き起こされます)
ありがとうございました