我有一个带有列表视图的应用程序.该列表视图工作正常.当我希望列表以某些标记的行开始时,问题就开始了.如果我按一下,可以标记一行.但是,似乎没有找到在初始化时标记任何行的方法.
这是我的代码:
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中标记视图?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)