android.R.Layout.* 如何接收这个作为方法的参数?
android.R.Layout.* how to receive this as parameter on the method?
我有一个方法可以接收上下文和列表,因此它可以更改适配器的背景颜色和 return 它,但现在我的情况是它必须是 android.R.Layout.simple_list_item_1
对于单行和 android.R.Layout.simple_list_item_2
或者它可以是任何其他类型的 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;
}
我确实尝试过将 Layout 作为参数但没有用,我确实搜索过它但找不到相关信息。
编辑
我想做这样的事情:
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
方法,使代码更简单。
而不是:
View view = super.getView(position, converView, parent);
使用 "converView"(或 convertView,但您更喜欢 :D )。像这样:
converView.setBackgroundColor(Color.parseColor("#FFD6D6D6"));
void setLayout(@LayoutRes int layoutRes){
// do something with layoutRes
}
setLayout(R.layout.doggo)
有关详细信息,请参阅 https://developer.android.com/reference/android/support/annotation/LayoutRes.html
我有一个方法可以接收上下文和列表,因此它可以更改适配器的背景颜色和 return 它,但现在我的情况是它必须是 android.R.Layout.simple_list_item_1
对于单行和 android.R.Layout.simple_list_item_2
或者它可以是任何其他类型的 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;
}
我确实尝试过将 Layout 作为参数但没有用,我确实搜索过它但找不到相关信息。
编辑
我想做这样的事情:
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
方法,使代码更简单。
而不是:
View view = super.getView(position, converView, parent);
使用 "converView"(或 convertView,但您更喜欢 :D )。像这样:
converView.setBackgroundColor(Color.parseColor("#FFD6D6D6"));
void setLayout(@LayoutRes int layoutRes){
// do something with layoutRes
}
setLayout(R.layout.doggo)
有关详细信息,请参阅 https://developer.android.com/reference/android/support/annotation/LayoutRes.html