100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Android使用BaseAdapter绑定ListView实现不同item的TextView多种文字变色

Android使用BaseAdapter绑定ListView实现不同item的TextView多种文字变色

时间:2021-07-27 23:04:27

相关推荐

Android使用BaseAdapter绑定ListView实现不同item的TextView多种文字变色

工程目录:

Activity

package com.example.test1121;import androidx.appcompat.app.ActionBar;import androidx.appcompat.app.AppCompatActivity;import android.app.Activity;import android.content.Intent;import android.graphics.Color;import android.os.AsyncTask;import android.os.Bundle;import android.text.SpannableString;import android.text.Spanned;import android.text.method.ScrollingMovementMethod;import android.text.style.BackgroundColorSpan;import android.text.style.ForegroundColorSpan;import android.util.DisplayMetrics;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.RelativeLayout;import android.widget.TextView;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ActionBar bar=getSupportActionBar();bar.hide();ListView lv=findViewById(R.id.lv);String color[]={"红色","黄色","蓝色"};SpannableString spannableString=new SpannableString("我是红色字符串");ForegroundColorSpan fc=new ForegroundColorSpan(Color.RED);spannableString.setSpan(fc,0,3, Spanned.SPAN_INCLUSIVE_INCLUSIVE);SpannableString spannableString2=new SpannableString("我是黄色字符串");ForegroundColorSpan fc2=new ForegroundColorSpan(Color.YELLOW);spannableString2.setSpan(fc2,1,3, Spanned.SPAN_INCLUSIVE_INCLUSIVE);SpannableString spannableString3=new SpannableString("我是蓝色字符串");ForegroundColorSpan fc3=new ForegroundColorSpan(Color.BLUE);spannableString3.setSpan(fc3,2,3, Spanned.SPAN_INCLUSIVE_INCLUSIVE);SpannableString ss[]={spannableString,spannableString2,spannableString3};final List<Map<String,Object>> list=new ArrayList<>();for(int i=0;i<color.length;i++){Map<String,Object> item=new HashMap<>();item.put("color",color[i]);item.put("spannableString",ss[i]);list.add(item);}BaseAdapter adapter=new BaseAdapter() {@Overridepublic int getCount() {return list.size();}@Overridepublic Object getItem(int position) {return list.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {View item=View.inflate(getApplicationContext(),R.layout.adapter_layout,null);TextView c=item.findViewById(R.id.color);TextView mess=item.findViewById(R.id.mess);Map<String,Object> map=list.get(position);c.setText(map.get("color")+" ");mess.setText((SpannableString)map.get("spannableString"));return item;}};lv.setAdapter(adapter);}}

adapter_layout里插入两个水平TextView

activity_main中插入一个ListView

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。