android-如何在ListView中标记视图?

android-如何在ListView中标记视图?,第1张

概述我有一个带有列表视图的应用程序.该列表视图工作正常.当我希望列表以某些标记的行开始时,问题就开始了.如果我按一下,可以标记一行.但是,似乎没有找到在初始化时标记任何行的方法.这是我的代码:listViewOfBluetooth=getListView();setInitialEnabledDevices();listViewOfBl

我有一个带有列表视图的应用程序.该列表视图工作正常.当我希望列表以某些标记的行开始时,问题就开始了.如果我按一下,可以标记一行.但是,似乎没有找到在初始化时标记任何行的方法.

这是我的代码:

ListVIEwOfBluetooth = getListVIEw();setinitialEnabledDevices();  ListVIEwOfBluetooth.setonItemClickListener(new OnItemClickListener() {  public voID onItemClick(AdapterVIEw<?> parent, VIEw vIEw, int position, long ID) {      String chosenBluetoothDevice = (String) ((TextVIEw) vIEw).getText();      BluetoothEnableOrdisable(vIEw, chosenBluetoothDevice);      Toast.makeText(getApplicationContext(), chosenBluetoothDevice, Toast.LENGTH_SHORT).show();      editor.putString("bluetooth_name_from_List1", chosenBluetoothDevice);      editor.putBoolean("have_the_cars_bluetooth", true);      editor.commit();      Intent intent = new Intent(List.this, ParkOGuardActivity.class);      startActivity(intent);      }  });}public static voID setinitialEnabledDevices(){    int length = ListVIEwOfBluetooth.getChildCount();    VIEw vIEw = null;    String first = prefs.getString("bluetooth_name_from_List0", "");    String second = prefs.getString("bluetooth_name_from_List1", "");    String third = prefs.getString("bluetooth_name_from_List2", "");    for(int i = 0; i < length; i++){        vIEw = ListVIEwOfBluetooth.getChildAt(i);        if(vIEw.equals(first) || vIEw.equals(second) || vIEw.equals(third)) {            vIEw.setBackgroundcolor(color.GRAY);        }    }       }

我该如何解决?

谢谢!

解决方法:

您可以通过使用自定义适配器来实现.这是解决方法.

>初始化您的自定义适配器
>为标记的设备名称添加一些标志.
>覆盖getVIEw()&检查标志.并相应地设置列表项目的背景.

如果您不明白或面临任何复杂性,请回复.

更新:

这是一个示例适配器.我没有编译代码.因此可能存在一些错误.

import java.util.ArrayList;import androID.content.Context;import androID.graphics.color;import androID.vIEw.VIEw;import androID.vIEw.VIEwGroup;import androID.Widget.BaseAdapter;import androID.Widget.TextVIEw;public class TestAdapter extends BaseAdapter{    ArrayList<String> devicenames;    ArrayList<Boolean> selected;    Context context;    public TestAdapter(Context context)    {        this.context = context;        devicenames = new ArrayList<String>();        selected = new ArrayList<Boolean>();    }    public voID addDevicetoList(String devicename, boolean isSelected)    {        devicenames.add(devicename);        selected.add(isSelected);        notifyDataSetChanged();    }    public int getCount()    {        return devicenames.size();    }    public Object getItem(int position)    {        return devicenames.get(position);    }    public long getItemID(int position)    {        return position;    }    public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent)    {        TextVIEw tv = new TextVIEw(context);        tv.setText(devicenames.get(position));        if(selected.get(position) == true)        {            tv.setBackgroundcolor(color.parsecolor("#ff0000"));        }        return tv;    }}

现在创建适配器对象,并将适配器设置为ListVIEw.并通过调用addDevicetoList()方法添加单个项目.

总结

以上是内存溢出为你收集整理的android-如何在ListView中标记视图?全部内容,希望文章能够帮你解决android-如何在ListView中标记视图?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1210882.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存