Android setBackground或多列Listview的文本颜色';s特定行
如何为特定行设置ListView的背景Android setBackground或多列Listview的文本颜色';s特定行,android,android-listview,Android,Android Listview,如何为特定行设置ListView的背景 ListView list = getListView(); sd = new SimpleAdapter(this, routhPath, R.layout.route_path,new String[] {"routeCode","routeName","outlets" },new int[] { R.id.routeCode,R.id.routeName,R.id.outlets}); list.setAdapter(s
ListView list = getListView();
sd = new SimpleAdapter(this, routhPath, R.layout.route_path,new String[] {"routeCode","routeName","outlets" },new int[] { R.id.routeCode,R.id.routeName,R.id.outlets});
list.setAdapter(sd);
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
list.setSelected(true);
list.setTextFilterEnabled(true);
list.setItemsCanFocus(true);
list.setSelectionAfterHeaderView();
if(isVisitedToVisitHeader()){
if(defaultRoutePos != 0){
Log.i("-----" ,"---defaultRoutePos---" + defaultRoutePos +" --count-- "+list.getChildCount());
list.setItemChecked(defaultRoutePos, true);
// list.getChildAt(positions).setBackgroundColor(R.color.red);
//list.getChildAt(defaultRoutePos).setBackgroundColor(R.color.red);
}
}
这是我的代码。我已经使用了SimpleAdapter
。在这里list.getChildCount()
give 0。我正在onCreate()
中输入这部分内容
请帮帮我
提前感谢package com.android.listactivity 导入android.app.Activity; 导入android.view.LayoutInflater; 导入android.view.view; 导入android.view.ViewGroup
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class MySimpleArrayAdapter extends ArrayAdapter<String> {
private final Activity context;
private final String[] names;
public MySimpleArrayAdapter(Activity context, String[] names) {
super(context, R.layout.rowlayout, names);
this.context = context;
this.names = names;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.rowlayout, null, true);
TextView textView = (TextView) rowView.findViewById(R.id.label);
ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
textView.setText(names[position]);
// Change the icon for Windows and iPhone
String s = names[position];
我建议使用自定义适配器,如上所示:
如果没有,您可以尝试获取list.getPositionForView(view)为所需的特定位置设置背景色或图像package com.android.listactivity 导入android.app.Activity; 导入android.view.LayoutInflater; 导入android.view.view; 导入android.view.ViewGroup
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class MySimpleArrayAdapter extends ArrayAdapter<String> {
private final Activity context;
private final String[] names;
public MySimpleArrayAdapter(Activity context, String[] names) {
super(context, R.layout.rowlayout, names);
this.context = context;
this.names = names;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.rowlayout, null, true);
TextView textView = (TextView) rowView.findViewById(R.id.label);
ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
textView.setText(names[position]);
// Change the icon for Windows and iPhone
String s = names[position];
我建议使用自定义适配器,如上所示:
如果没有,您可以尝试获取list.getPositionForView(视图)为所需的特定位置设置背景色或图像检查此自定义ListView示例 这也是StackOverflow的答案
签出此自定义ListView示例 这也是StackOverflow的答案
否。它不起作用。我正在使用
simpledapter
使用多列。是否可以使用simpledapter
?请帮助我您是否尝试获取列表。getPositionForView(view)并为所需的特定位置设置背景色或图像无效。它不起作用。我正在使用SimpleAdapter
使用多列。是否可以使用SimpleAdapter
执行此操作?请帮助我您是否尝试获取列表。getPositionForView(view)并设置所需特定位置的背景色或图像我正在使用SimpleAdapter
使用多列。是否可以使用SimpleAdapter
执行此操作?请帮助我使用simpledapter
使用多栏。可以使用simpledapter
吗?请帮助我无法使用基本的SimpleAdapter
。您需要自己的getView()
的细粒度控制。您必须记住,ListView
会回收视图,并且当前可见内容之外的位置(6项左右,视情况而定)实际上并不存在listview.getChildAt()
返回第n个可见行,因此位置将无法正确映射。无法使用基本SimpleAdapter
。您需要自己的getView()
的细粒度控制。您必须记住,ListView
会回收视图,并且当前可见内容之外的位置(6项左右,视情况而定)实际上并不存在listview.getChildAt()
返回第n个可见行,因此位置将无法正确映射。