次の問題があります。
2 つのフラグメントがあり、それぞれにアダプター付きの ListView があります。最初のリストから要素を選択することで、最初のリストを含むフラグメントを 2 番目のリストを含むフラグメントに置き換えます。2つ目のFragmentだけ各行の背景を透明にしたいのですが、2つ目のアダプターのgetViewで以下のコードを使うと、リソースを更新しているように見えますか? 誰でも理由を説明できますか?
コード:
最初のフラグメント:
public View getView(int position, View convertView, ViewGroup parent) {
(...)
v.setBackgroundResource(R.drawable.abstract_gray);
(...)
}
2 番目のフラグメント:
public View getView(int position, View convertView, ViewGroup parent) {
(...)
Drawable backgroundDrawable = context.getResources().getDrawable(R.drawable.abstract_gray);
backgroundDrawable.setAlpha(ToolsAndConstants.BACKGROUND_TRANSPARENCY);
v.setBackgroundDrawable(backgroundDrawable);
// I call this to check if when I call the drawable from resurce it will not be transparent
v.setBackgroundResource(R.drawable.abstract_gray);
// But it is...So previous fragment background, when I go back with back Button
(...)
}
この質問は本当に基本的なものかもしれませんが、リソースから新しいオブジェクトを作成すると、実際にはリソース自体を操作し、新しいオブジェクトに加えられたすべての変更は、他のクラスがそのオブジェクトにアクセスできない場合でも、アプリケーション全体に影響します??
編集:
申し訳ありませんが、新しい Drawable を作成するのではなく、参照を作成するだけであることに気付きました。どうすれば新しいものを作成できますか?できない場合、2 番目のリストのみの背景を変更するにはどうすればよいですか?