在这个问答内容中,我们讨论了如何在Android ListView中交替行颜色,并设置默认光标选择。
首先,我们可以通过在ListView的适配器中设置不同的背景颜色来实现交替行颜色。以下是一个简单的示例:
public class MyAdapter extends ArrayAdapter<String> {
private int[] colors = {Color.parseColor("#FFFFFF"), Color.parseColor("#F0F0F0")};
public MyAdapter(Context context, int resource, List<String> objects) {
super(context, resource, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
int colorPos = position % colors.length;
view.setBackgroundColor(colors[colorPos]);
return view;
}
}
在这个示例中,我们定义了一个颜色数组,其中包含了两种颜色。然后,我们在getView()
方法中根据位置来选择背景颜色。
接下来,我们可以设置默认光标选择。为此,我们可以在ListView的适配器中设置一个选中项。以下是一个简单的示例:
public class MyAdapter extends ArrayAdapter<String> {
private int selectedItem = 0;
public MyAdapter(Context context, int resource, List<String> objects) {
super(context, resource, objects);
}
public void setSelectedItem(int position) {
selectedItem = position;
notifyDataSetChanged();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
if (position == selectedItem) {
view.setBackgroundColor(Color.parseColor("#FF0000"));
} else {
int colorPos = position % colors.length;
view.setBackgroundColor(colors[colorPos]);
}
return view;
}
}
在这个示例中,我们定义了一个selectedItem
变量来存储选中项的位置。然后,我们在getView()
方法中根据位置来设置背景颜色。如果位置与选中项位置相同,则将背景颜色设置为红色。
最后,我们可以在主Activity中设置适配器和选中项。以下是一个简单的示例:
public class MainActivity extends AppCompatActivity {
private ListView listView;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView);
List<String> items = new ArrayList<>();
items.add("Item 1");
items.add("Item 2");
items.add("Item 3");
items.add("Item 4");
items.add("Item 5");
adapter = new MyAdapter(this, android.R.layout.simple_list_item_1, items);
listView.setAdapter(adapter);
listView.setOnItemClickListener((parent, view, position, id) -> {
adapter.setSelectedItem(position);
});
}
}
在这个示例中,我们首先创建了一个包含5个项的列表。然后,我们创建了一个MyAdapter
实例,并将其设置为ListView的适配器。最后,我们在setOnItemClickListener()
方法中设置了一个监听器,以便在用户点击项时更新选中项。
这就是如何在Android ListView中交替行颜色并设置默认光标选择的方法。
领取专属 10元无门槛券
手把手带您无忧上云