人造人.R.Layout.* 如何接收它作为方法上的参数?



>我有一个接收上下文和列表的方法,以便它可以更改适配器的背景颜色并返回它,但现在我遇到一种情况,它必须是单行和android.R.Layout.simple_list_item_2android.R.Layout.simple_list_item_1,或者它可以是任何其他类型的android.R.Layout.*

如何定义方法上的参数?

这是我目前的方法

private ArrayAdapter<String> AdapterColor(List<String> list, Context context)
{
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1, list)
{
@Override
public View getView(int position, View converView, ViewGroup parent)
{
View view = super.getView(position, converView, parent);
if(position %2 == 1)
{
view.setBackgroundColor(Color.parseColor("#FFD6D6D6"));
}
else
{
view.setBackgroundColor(Color.parseColor("#FFFAFAFA"));
}
return view;
}
};
return adapter;
}

我确实尝试将布局作为参数,但不起作用,我确实搜索了它,但找不到有关此的信息。

编辑

我想做这样的事情:

private ArrayAdapter<String> AdapterColor(List<String> list, Context context, Layout layoutParam)
{
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, layoutParam, list)
{
@Override
public View getView(int position, View converView, ViewGroup parent)
{
View view = super.getView(position, converView, parent);
if(position %2 == 1)
{
view.setBackgroundColor(Color.parseColor("#FFD6D6D6"));
}
else
{
view.setBackgroundColor(Color.parseColor("#FFFAFAFA"));
}
return view;
}
};
return adapter;
}

希望接收来自外部到方法的LayoutParam,使代码更加容易。

void setLayout(@LayoutRes int layoutRes){
// do something with layoutRes
}
setLayout(R.layout.doggo)

有关更多信息,请参阅 https://developer.android.com/reference/android/support/annotation/LayoutRes.html

而不是:

View view = super.getView(position, converView, parent);

使用"converView"(或convertView,但你喜欢:D)。这样:

converView.setBackgroundColor(Color.parseColor("#FFD6D6D6"));

最新更新