gpt4 book ai didi

android用颜色设置 ListView 的特定行背景

转载 作者:太空宇宙 更新时间:2023-11-03 12:56:27 25 4
gpt4 key购买 nike

我正在处理 ListView ,并且想突出显示 ListView 中的第 3 行到第 7 行。

代码:

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.sample_list);
lv = (ListView) findViewById(R.id.sample_listview);

String[] Sample_List = getResources().getStringArray(R.array.Sample_List);
final ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < Sample_List.length; ++i)
{
list.add(Sample_List[i]);
}

final StableArrayAdapter adapter = new StableArrayAdapter(this, R.layout.list_item, list);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
...
}
});
}

更新:

我已经更新了代码如下:

    lv.setAdapter(myAdapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
...
}
});
}

public class MyCustomArrayAdapter extends ArrayAdapter<String>
{
private final Context context;
private final String[] values;

public MyCustomArrayAdapter(Context context, String[] values)
{
super(context, R.layout.list_item, values);
this.context = context;
this.values = values;
}

@Override
public View getView (int position, View convertView, ViewGroup parent)
{
View view = super.getView(position, convertView, parent);
if(position>=3&&position<=7)
{
view.setBackgroundResource(R.drawable.green_btn);
}
else
{
view.setBackgroundResource(R.drawable.white_btn);
}
return view;
}
}

问题:

我在网上研究了很多,但我仍然无法弄清楚如何实现 getView...以这种方式如何更改上面的内容,例如,背景第 3 行到7 设置为红色?

实现更新后的代码, ListView 无法正确展开以显示每个项目,只能显示项目的边框(绿色按钮有一些黑色边框),可能是因为没有链接列表。

如何将列表与 MyCustomArrayAdapter 连接起来?

最佳答案

如何将突出显示的位置存储在 List 中,以便您可以执行类似的操作。-

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
if (highlightedPositions.contains(position)) {
view.setBackgroundColor(yourColor);
}
return view;
}

编辑

现在您已经有了自己的自定义适配器,请替换您设置 StableArrayAdapter 的代码。-

final StableArrayAdapter adapter = new StableArrayAdapter(this, R.layout.list_item, list);
lv.setAdapter(adapter);

有了这个.-

final MyCustomArrayAdapter adapter = new MyCustomArrayAdapter(this, list);
lv.setAdapter(adapter);

关于android用颜色设置 ListView 的特定行背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19333092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com