工程目錄:
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 {
@Override
protected 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() {
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public 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