MyObject
のカスタム配列アダプタを使用してListView
を作成しました。 MyObject
の1つのインスタンスには、String
とboolean
が含まれています。 ListView
を視覚化すると、すべてのアイテムが太字で表示され、そのアイテムの1つをタップすると、新しいActivity
が表示されます。何をしたいのですか?ListView
に戻って戻ってくるたびに、太字ではなくクリックしたアイテムが視覚化されます。実行時にListViewの行項目書体を変更する
@Override
protected void onResume() {
super.onResume();
adapter.notifyDataSetChanged();
}
とコードが実際に動作しますが、問題がある:私は入れ
public class MyAdapter extends ArrayAdapter<MyObject> {
private final Context context;
private final ArrayList<MyObject> values;
public MyAdapter(Context context, ArrayList<MyObject> values) {
super(context, R.layout.my_item, values);
this.context = context;
this.values = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(convertView == null){
convertView = inflater.inflate(R.layout.my_item, parent, false);
}
TextView textView = (TextView) convertView.findViewById(R.id.itemName);
textView.setText(values.get(position).getMyObjectName());
if(values.get(position).isSetted()){
textView.setTypeface(null, 0);
}
return convertView;
}
}私Activity
で
:これは私のカスタムArrayAdapter
であるあなたには、いくつかの項目をタップした後、他のアンタップされたアイテムは、あなたが戻ったときに太字にならないようになります!これはランダムに起こります!なぜこうなった?アイテムの
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
String item = objList.get(position).getMyObjectName();
objList.get(position).setSetted(true);
to_ans.putExtra("ItemName", item);
startActivity(to_ans);
}
boolean
値は、最初全てfalse
に設定されています。
ありがとうございました!あなたは私を救った=) – michoprogrammer