gpt4 book ai didi

java - 样式添加行到 ArrayAdapter ListView Android

转载 作者:行者123 更新时间:2023-11-30 04:51:19 25 4
gpt4 key购买 nike

我有一个 ListView,我想将它与 ArrayAdapter 一起使用以添加不同样式的行。这些行是在我的应用程序中的不同状态下创建的,并且应该根据不同的状态对行进行样式设置(例如颜色和内容)。

这是一些伪代码:

关于创作:

mArrayAdapter = new ArrayAdapter(this, R.layout.message);
mView = (ListView) findViewById(R.id.in);
mView.setAdapter(mArrayAdapter);

在由另一个线程使用 MessageHandler 触发的不同状态下,向包含消息的列表添加一行:

mArrayAdapter.add("Message");

这很好用,消息根据不同的状态在列表中弹出,但我希望行的样式不同。这个怎么做?是使用自定义 Add() 方法创建自定义 ArrayAdapter 的解决方案吗?

最佳答案

您需要做的是创建自定义 ArrayAdapter 并覆盖 getView() 方法。在那里您可以决定是否对行应用不同的样式。例如:

class CustomArrayAdapter extends ArrayAdapter {
CustomArrayAdapter() {
super(YourActivity.this, R.layout.message);
}

public View getView(int position, View convertView,
ViewGroup parent) {
View row=convertView;

if (row==null) {
LayoutInflater inflater=getLayoutInflater();

row=inflater.inflate(R.layout.message, parent, false);
}

// e.g. if you have a TextView called in your row with ID 'label'
TextView label=(TextView)row.findViewById(R.id.label);
label.setText(items[position]);

// check the state of the row maybe using the variable 'position'
if( I do not actually know whats your criteria to change style ){
label.setTextColor(blablabla);
}

return(row);
}
}

关于java - 样式添加行到 ArrayAdapter ListView Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3255650/

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