我有一个列表视图。我想区分标题和descitption。我想显示标题一种颜色和描述是其他颜色。我怎样才能做到这一点?我有以下代码用于创建listview。
的活动:
public class Lisearch extends Activity {
private ListView lv;
private EditText et;
private String listview_array[] = {"ONE:\n one is the first letter"};
private ArrayList<String> array_sort= new ArrayList<String>();
int textlength=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lisearch);
TextView tv=(TextView)findViewById(R.id.text);
lv = (ListView) findViewById(R.id.ListView01);
et = (EditText) findViewById(R.id.EditText01);
//lv.setAdapter(new ArrayAdapter<String>(this,
//R.layout.activity_lisearch, listview_array));
et.addTextChangedListener(new TextWatcher()
{
public void afterTextChanged(Editable s)
{
// Abstract Method of TextWatcher Interface.
}
public void beforeTextChanged(CharSequence s,
int start, int count, int after)
{
// Abstract Method of TextWatcher Interface.
}
public void onTextChanged(CharSequence s,
int start, int before, int count)
{
textlength = et.getText().length();
array_sort.clear();
for (int i = 0; i < listview_array.length; i++)
{
if (textlength <= listview_array[i].length())
{
if(et.getText().toString().equalsIgnoreCase(
(String)
listview_array[i].subSequence(0,
textlength)))
{
array_sort.add(listview_array[i]);
}
}
}
lv.setAdapter(new ArrayAdapter<String>
(Lisearch.this,
R.layout.list,R.id.text, array_sort));
search.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@drawable/aa"
>
<EditText android:id="@+id/EditText01"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:hint="Search"
android:padding="5dp">
</EditText>
<ListView android:id="@+id/ListView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:listSelector="@drawable/list_selector"
android:layout_weight="1"
>
</ListView>
</LinearLayout>
list.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:paddingLeft="6dp"
android:textSize="15sp"
android:minHeight="?android:attr/listPreferredItemHeight"
android:textColor="#FF4444"
android:textStyle="bold"
android:layout_marginLeft="10dp"
/>
答案 0 :(得分:0)
在list.xml中为标题和描述使用单独的textview。并为文本使用所需的颜色。
public class CustomAdapter extends BaseAdapter {
private Context mContext;
String[] array =null;
public CustomAdapter(Context c,String[] array) {
this.mContext = c;
this.array= array;
}
public int getCount() {
return count;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.list, null);
TextView textView1 = (TextView) view.findViewById(R.id.textView1);
TextView textView2 = (TextView) view.findViewById(R.id.textView2);
return view;
}
}
将此适配器用于列表视图。
答案 1 :(得分:0)
在list.xml中,有2个TextView,一个用于标题,一个用于描述,类似下面的一个
<TextView android:id="@+id/title" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/titleText"
android:textSize="25dp" />
<TextView android:id="@+id/description"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textSize="15dp"
android:layout_below="@id/title" android:textColor="#00FF00" />
这样你可以有单独的颜色,添加你的适配器如下
SimpleAdapter adapter = new SimpleAdapter(this,list,R.layout.list,new String[] {"Title","Description"},new int[] {R.id.title,R.id.description});
setListAdapter(adapter);