我有以下问题。
我有两个片段,每个片段都有一个带适配器的 ListView。通过从第一个列表中选择元素,我将包含第一个列表的片段替换为包含第二个列表的片段。我想让每一行背景只在第二个 Fragment 中透明,但是在第二个适配器的 getView 中使用的以下代码,它看起来像更新资源?谁能解释为什么?
代码:
第一个片段:
public View getView(int position, View convertView, ViewGroup parent) {
(...)
v.setBackgroundResource(R.drawable.abstract_gray);
(...)
}
第二个片段:
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,我只是做一个参考。那我怎样才能创建一个新的呢?如果我不能,我怎样才能改变只有第二个列表的背景?